溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JS 自執(zhí)行函數(shù)原理及用法

發(fā)布時間:2020-10-10 11:38:02 來源:腳本之家 閱讀:126 作者:計(jì)算機(jī)-小白 欄目:web開發(fā)

js自執(zhí)行函數(shù),聽到這個名字,首先會聯(lián)想到函數(shù)。接下來,我來定義一個函數(shù):

function aaa(a,b){
  return sum = a + b
}

定義了一個名為aaa的函數(shù),在里面可以計(jì)算兩個數(shù)的和。如果想執(zhí)行它,就必須得調(diào)用它,并且還得給它傳參:

var aa = aaa(1,2)

這樣就實(shí)現(xiàn)了一個函數(shù)的定義與調(diào)用,通過console.log我們可以看到sum實(shí)現(xiàn)了兩個數(shù)的相加。

自執(zhí)行函數(shù)是什么?自執(zhí)行函數(shù)就是當(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)了兩個數(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)

這是一個函數(shù)與一個自執(zhí)行函數(shù),輸出這兩個函數(shù)會發(fā)現(xiàn):函數(shù)aaa被全部打印出來,而bbb則報錯。自執(zhí)行函數(shù)相當(dāng)于一個瓶口朝下的杯子,當(dāng)定義它的時候,它會傾斜,把杯口露出來,吸收外面的新鮮空氣;當(dāng)它執(zhí)行完畢,杯口不再外露,緊閉起來,與外界再無關(guān)聯(lián)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI