最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js當(dāng)一個(gè)變量為函數(shù)時(shí) 應(yīng)該注意的一點(diǎn)細(xì)節(jié)小結(jié)

 更新時(shí)間:2011年12月29日 00:44:47   作者:  
變量testFun為一個(gè)匿名函數(shù),匿名函數(shù)返回的一個(gè)testFun.init對(duì)象(也是一個(gè)匿名函數(shù))
先看一段簡(jiǎn)單的代碼:
復(fù)制代碼 代碼如下:

var testFun=function (name,age){
var job='Flash Develop';
return new testFun.init(name,age,job);
}
testFun.init=function(name,age,job){
return 'name:'+name+',age:'+age+',job:'+job+'';
}
alert(testFun('vincent',30)); //[object Object]

代碼很簡(jiǎn)單,變量testFun為一個(gè)匿名函數(shù),匿名函數(shù)返回的一個(gè)testFun.init對(duì)象(也是一個(gè)匿名函數(shù))。但對(duì)于一些新手有時(shí)會(huì)誤解為:testFun是返回的一個(gè)testFun.init對(duì)象。他可能會(huì)這樣想,在匿名函數(shù)function(name,age)構(gòu)建過(guò)程中,又用到了testFun. 此時(shí)testFun還在構(gòu)建中,應(yīng)該還沒(méi)有存在,testFun.init更沒(méi)有存在,怎么就可以用testFun.init呢?

其實(shí)這樣想是存在了一個(gè)誤區(qū):把testFun與testFun()等同起來(lái)了,如果testFun是返回的一個(gè)testFun.init對(duì)象,代碼應(yīng)該是testFun=function(name,age){… …}()。正確的理解應(yīng)該是這樣的,testFun只是一個(gè)函數(shù),當(dāng)你把一個(gè)函數(shù)賦于它時(shí),它就已經(jīng)存在了,哪怕函數(shù)返回的是undefined或null,它本身仍然是Function,只有testFun()執(zhí)行后返回值才是undefined或null。返回值是testFun()執(zhí)行的結(jié)果,結(jié)果返回后,就不再與testFun有任何關(guān)系。如:
復(fù)制代碼 代碼如下:

var testFun=function(){
return undefined;
}
var result=testFun();
alert(testFun); // function () {return undefined;}
alert(result); // undefined result與testFun不再有任何關(guān)系

所以,當(dāng)賦于testFun一個(gè)匿名函數(shù)后,它就一直存在著,直到賦于它另外一個(gè)值。對(duì)于testFun.init你可以這樣簡(jiǎn)單的去理解:
testFun.init=function(name,age){}.init=function(name,age.job){… …}
綜上所述,回頭再看testFun是一個(gè)函數(shù),而testFun()則是(function(name,age,job){return 'name:'+name+',age:'+age+',job:'+job+''; })()
為了便于理解,可以把代碼精簡(jiǎn)為:
復(fù)制代碼 代碼如下:

var testFun=function(){}
testFun.init=function(){}

只是testFun()沒(méi)有返回一個(gè)testFun.init對(duì)象罷了。

相關(guān)文章

最新評(píng)論

达拉特旗| 仲巴县| 镇康县| 安图县| 佳木斯市| 安陆市| 山东省| 兴宁市| 姜堰市| 永登县| 桂东县| 高雄县| 岑溪市| 扎兰屯市| 德令哈市| 河池市| 连山| 资溪县| 历史| 定远县| 泾阳县| 扎赉特旗| 镇远县| 牡丹江市| 阿坝县| 改则县| 宁武县| 和林格尔县| 蒙阴县| 茂名市| 牟定县| 沧州市| 交口县| 高碑店市| 凌海市| 龙江县| 临安市| 余姚市| 灌云县| 瑞昌市| 孟津县|