一個(gè)關(guān)于javascript匿名函數(shù)的問(wèn)題分析
更新時(shí)間:2012年03月30日 23:55:02 作者:
一個(gè)關(guān)于javascript匿名函數(shù)的問(wèn)題分析,學(xué)習(xí)js的朋友可以參考下
匿名函數(shù),就是沒有名字的函數(shù)。如:
function (){
alert('a function');
}
但是,上面的代碼會(huì)報(bào)錯(cuò)。firebug提示:function statement requires a name,也就是:函數(shù)必須要有個(gè)名字。
奇怪的是,如果我用一對(duì)()把這個(gè)沒有名字的函數(shù)包起來(lái),就不會(huì)報(bào)錯(cuò)了。如:
(function (){
alert('a function');
})
(注意包裹函數(shù)的()!).雖然這樣不會(huì)報(bào)錯(cuò),但誰(shuí)能知道這個(gè)函數(shù)是否聲明成功了呢?是不是因?yàn)楦緵]聲明所以才不報(bào)錯(cuò)呢?我們這樣來(lái)測(cè)試:讓函數(shù)自己執(zhí)行一次:
(function (){
alert('a function');
}())
可以看到,函數(shù)執(zhí)行了,表明函數(shù)是存在的。
同樣,如果這個(gè)時(shí)候去掉包裹函數(shù)的(),則依然會(huì)報(bào)前面那個(gè)錯(cuò),函數(shù)也執(zhí)行不了。。。
function (){
alert('a function');
}()
這對(duì)包裹函數(shù)的(),真有這么重要?哪位高手解釋一下原理呢?
復(fù)制代碼 代碼如下:
function (){
alert('a function');
}
但是,上面的代碼會(huì)報(bào)錯(cuò)。firebug提示:function statement requires a name,也就是:函數(shù)必須要有個(gè)名字。
奇怪的是,如果我用一對(duì)()把這個(gè)沒有名字的函數(shù)包起來(lái),就不會(huì)報(bào)錯(cuò)了。如:
復(fù)制代碼 代碼如下:
(function (){
alert('a function');
})
(注意包裹函數(shù)的()!).雖然這樣不會(huì)報(bào)錯(cuò),但誰(shuí)能知道這個(gè)函數(shù)是否聲明成功了呢?是不是因?yàn)楦緵]聲明所以才不報(bào)錯(cuò)呢?我們這樣來(lái)測(cè)試:讓函數(shù)自己執(zhí)行一次:
復(fù)制代碼 代碼如下:
(function (){
alert('a function');
}())
可以看到,函數(shù)執(zhí)行了,表明函數(shù)是存在的。
同樣,如果這個(gè)時(shí)候去掉包裹函數(shù)的(),則依然會(huì)報(bào)前面那個(gè)錯(cuò),函數(shù)也執(zhí)行不了。。。
復(fù)制代碼 代碼如下:
function (){
alert('a function');
}()
這對(duì)包裹函數(shù)的(),真有這么重要?哪位高手解釋一下原理呢?
您可能感興趣的文章:
- (轉(zhuǎn)載)JavaScript中匿名函數(shù),函數(shù)直接量和閉包
- Javascript的匿名函數(shù)講解
- Javascript的匿名函數(shù)小結(jié)
- javascript 匿名函數(shù)的理解(透徹版)
- JavaScript 編寫匿名函數(shù)的幾種方法
- Javascript 匿名函數(shù)及其代碼模式原理
- Javascript匿名函數(shù)的一種應(yīng)用 代碼封裝
- 通過(guò)javascript的匿名函數(shù)來(lái)分析幾段簡(jiǎn)單有趣的代碼
- JavaScript 匿名函數(shù)(anonymous function)與閉包(closure)
- Javascript中的回調(diào)函數(shù)和匿名函數(shù)的回調(diào)示例介紹
- 詳談JavaScript 匿名函數(shù)及閉包
- JavaScript函數(shù)的一些注意要點(diǎn)小結(jié)及js匿名函數(shù)
相關(guān)文章
JavaScript通過(guò)function定義對(duì)象并給對(duì)象添加toString()方法實(shí)例分析
這篇文章主要介紹了JavaScript通過(guò)function定義對(duì)象并給對(duì)象添加toString()方法,實(shí)例分析了javascript中function定義對(duì)象及添加方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
詳解Webpack loader 之 file-loader
這篇文章主要介紹了詳解Webpack loader 之 file-loader,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
ECharts異步加載數(shù)據(jù)與數(shù)據(jù)集(dataset)
這篇文章介紹了ECharts異步加載數(shù)據(jù)與數(shù)據(jù)集(dataset),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
Javascript的無(wú)new構(gòu)建實(shí)例詳解
這篇文章主要介紹了Javascript的無(wú)new構(gòu)建實(shí)例詳解的相關(guān)資料,小編感覺介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05
基于原生JavaScript實(shí)現(xiàn)SPA單頁(yè)應(yīng)用
單頁(yè)Web應(yīng)用?(single?page?web?application,SPA)?,就是只有一張Web頁(yè)面的應(yīng)用,是加載單個(gè)HTML?頁(yè)面并在用戶與應(yīng)用程序交互時(shí)動(dòng)態(tài)更新該頁(yè)面的Web應(yīng)用程序。本文將利用原生JS實(shí)現(xiàn)SPA單頁(yè)應(yīng)用,需要的可以參考一下2023-03-03

