欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JavaScript重名,重名怎么區(qū)分

JavaScript函數(shù)重名怎么辦?

,因?yàn)槟_本在頁(yè)面里本身就是順序執(zhí)行下來的,包括函數(shù)的定義,但然如果只是定義 function foo(){}

綿竹ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

這種形式,我們是跟蹤不到函數(shù)初始化的。可是如果是定義類的方式,我們就可以明顯地跟蹤到函數(shù)的初始化順序。比如:

function foo() {}

function foo.prototype.fn1() {}

function foo.prototype.fn2() {}

我們就可以明顯地看到先執(zhí)行function foo.prototype.fn1(){}再執(zhí)行function

foo.prototype.fn2(){}。

回到我們剛才說的JavaScript腳本函數(shù)重名問題上來,比如我們定義兩個(gè)函數(shù) funAlert():

function funAlert()

{

alert('A');

}

function funAlert()

{

alert('B');

}

調(diào)用 funAlert(),那么將顯示一個(gè)MegBox,內(nèi)容為'B'。

為什么初始化函數(shù)會(huì)有這樣的效果?這里只用把上面兩個(gè)函數(shù)的定義改一下,就會(huì)一目了然了,我們把定義改為:

var fnAlert = new Function("alert('A')");

var fnAlert = new Function("alert('B')");

window.fnAlert();

其函數(shù)也就是定義在對(duì)象上的一個(gè)函數(shù)指針,我們象這個(gè)指針賦什么函數(shù)引用,它就執(zhí)行什么效果,而JavaScript中的腳本函數(shù)重名就和普通賦值語句一樣,等同于:

var i = 0;

var i = 1;

// 稍微注意以下JavaScript里的var,用var定義變量和我們平時(shí)用的高級(jí)語言定義變量是不同的,它只起到一個(gè)提示的作用,提醒說我在這里定義變量了,而沒有什么變量作用域的概念,只要不離開定義它的對(duì)象的域(比如頁(yè)面刷新),出現(xiàn)過的變量會(huì)就一直存在。所以var寫不寫都行。舉個(gè)例子:

if ( true )

{

t = 100;

}

alert(t);

將顯示100,而

if ( true )

{

var t = 100;

}

alert(t);

也是顯示100。

所以JavaScript的腳本函數(shù)名重不重復(fù)只是一個(gè)運(yùn)算的問題,和我們高級(jí)語言里的語法約束完全不是一回事,當(dāng)然也更不是overload的范疇。

腳本函數(shù)名重名有什么用呢?最直觀就是可以用來實(shí)現(xiàn)偽重載,比如我們不少免費(fèi)的主頁(yè)空間常常會(huì)給你強(qiáng)加彈出窗口廣告,我們就可以在頁(yè)面第一行寫上:

script language="javascript"

var _open = window.open;

window.open = function() {}

/script

這樣就可以屏蔽掉不是加在頁(yè)面第一行上的彈出窗口廣告(加在第一行不能攔截,因?yàn)閣indow.open還沒有被'重載'open就先執(zhí)行了)。

js重名了怎么解決

首先,在重名的情況下一般需要對(duì)比這兩個(gè)js里面的內(nèi)容是不是一樣,

如果就是兩個(gè)不一樣的js話,那直接把一個(gè)js的名字修改一下,

然后在導(dǎo)入這個(gè)js的html頁(yè)面把這個(gè)js的路徑的名字改成你修改后的js文件名就可以了

js方法重名

一個(gè)頁(yè)面如果引用多個(gè)JS,或者像ASP.NET MVC,一個(gè)視圖包含多個(gè)子視圖,每個(gè)子視圖有自己的JS,那么變量、函數(shù)的重名沖突機(jī)會(huì)將會(huì)大增。

解決方案如下:用類來封裝子頁(yè)的JS代碼

script type="text/javascript"

var globalName = "左直拳";

var A = function(){

var name = "leftfist";

function hi(){//私有函數(shù),外部無法訪問

alert(name + " : Hi!");//私有變量,內(nèi)部可以直接訪問

}

this.hiGlobal = function(){

alert(globalName + " : Hello!");//全局變量,內(nèi)部可以直接訪問

}

this.sayHello = function(){//public函數(shù),外部可訪問

hi();//私有函數(shù),內(nèi)部可以直接訪問

this.hiGlobal();//公有函數(shù),內(nèi)部訪問也要加上 this.

}

};

var fa = new A();

/script

網(wǎng)頁(yè)標(biāo)題:JavaScript重名,重名怎么區(qū)分
文章源于:http://chinadenli.net/article29/dsgscch.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司Google服務(wù)器托管用戶體驗(yàn)移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)