JS 自執(zhí)行函數(shù)原理及用法
js自執(zhí)行函數(shù),聽到這個(gè)名字,首先會(huì)聯(lián)想到函數(shù)。接下來,我來定義一個(gè)函數(shù):
function aaa(a,b){
return sum = a + b
}
定義了一個(gè)名為aaa的函數(shù),在里面可以計(jì)算兩個(gè)數(shù)的和。如果想執(zhí)行它,就必須得調(diào)用它,并且還得給它傳參:
var aa = aaa(1,2)
這樣就實(shí)現(xiàn)了一個(gè)函數(shù)的定義與調(diào)用,通過console.log我們可以看到sum實(shí)現(xiàn)了兩個(gè)數(shù)的相加。
自執(zhí)行函數(shù)是什么?自執(zhí)行函數(shù)就是當(dāng)它被定義出來,就會(huì)自動(dòng)執(zhí)行的函數(shù)。不需要調(diào)用,傳參也很方便。就上面的函數(shù),用自執(zhí)行函數(shù)定義就是這樣:
(function aaa(a,b){
return sum = a + b
;})(1,2)
通過控制臺可以發(fā)現(xiàn)sum實(shí)現(xiàn)了兩個(gè)數(shù)的相加。
自執(zhí)行函數(shù)有三種寫法:
1.( function ( “ 參數(shù) ” ) { " 函數(shù)方法 " ; } ) ( “ 給參數(shù)傳的值 ” )
2.( function ( " 參數(shù) " ) { “ 函數(shù)方法 ” ; } ( " 給參數(shù)傳的值 " ) )
3.! function ( " 參數(shù) " ) { " 函數(shù)方法 " ; } ( " 給參數(shù)傳的值 " )
第三種!可以換作其他運(yùn)算符或者void。
自執(zhí)行函數(shù)是很自私的,它的內(nèi)部可以訪問全局變量。但是除了自執(zhí)行函數(shù)自身內(nèi)部,是無法訪問它的。例:
function aaa(a1,b1){
return sum1 = a1 + b1
},
(function bbb(a2,b2){
return sum2 = a2 + b2
;}(),
console.log(aaa)
console.log(bbb)
這是一個(gè)函數(shù)與一個(gè)自執(zhí)行函數(shù),輸出這兩個(gè)函數(shù)會(huì)發(fā)現(xiàn):函數(shù)aaa被全部打印出來,而bbb則報(bào)錯(cuò)。自執(zhí)行函數(shù)相當(dāng)于一個(gè)瓶口朝下的杯子,當(dāng)定義它的時(shí)候,它會(huì)傾斜,把杯口露出來,吸收外面的新鮮空氣;當(dāng)它執(zhí)行完畢,杯口不再外露,緊閉起來,與外界再無關(guān)聯(lián)。
相關(guān)文章
JavaScript 中調(diào)用 Kotlin 方法實(shí)例詳解
這篇文章主要介紹了JavaScript 中調(diào)用 Kotlin 方法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
詳解微信小程序(Taro)手動(dòng)埋點(diǎn)和自動(dòng)埋點(diǎn)的實(shí)現(xiàn)
這篇文章主要介紹了詳解微信小程序(Taro)手動(dòng)埋點(diǎn)和自動(dòng)埋點(diǎn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
基于JavaScript實(shí)現(xiàn)網(wǎng)頁倒計(jì)時(shí)自動(dòng)跳轉(zhuǎn)代碼
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)網(wǎng)頁倒計(jì)時(shí)自動(dòng)跳轉(zhuǎn)代碼 的相關(guān)資料,需要的朋友可以參考下2015-12-12
淺談JavaScript的innerWidth與innerHeight
下面小編就為大家?guī)硪黄獪\談JavaScript的innerWidth與innerHeight。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
javascript實(shí)現(xiàn)div的顯示和隱藏的小例子
這篇文章介紹了在JS中實(shí)現(xiàn)DIV顯示和隱藏的實(shí)例,需要的朋友可以參考一下2013-06-06
JavaScript實(shí)現(xiàn)的前端AES加密解密功能【基于CryptoJS】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的前端AES加密解密功能,涉及javascript基于CryptoJS插件進(jìn)行AES加密解密操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-08-08
詳解JavaScript私有類字段和TypeScript私有修飾符
這篇文章主要介紹了JavaScript私有類字段和TypeScript私有修飾符,對私有類感興趣的同學(xué),可以參考下2021-04-04

