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)
通過控制臺(tái)可以發(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)。
- 詳解javascript立即執(zhí)行函數(shù)表達(dá)式IIFE
- 詳解JavaScript的閉包、IIFE、apply、函數(shù)與對(duì)象
- Python如何調(diào)用JS文件中的函數(shù)
- 深入學(xué)習(xí)js函數(shù)的隱式參數(shù) arguments 和 this
- JS中超越現(xiàn)實(shí)的匿名函數(shù)用法實(shí)例分析
- JS函數(shù)動(dòng)態(tài)傳遞參數(shù)的方法分析【基于arguments對(duì)象】
- JS定義函數(shù)的幾種常用方法小結(jié)
- JavaScript函數(shù)IIFE使用詳解
相關(guān)文章
史上最全JavaScript常用的簡(jiǎn)寫技巧(推薦)
這篇文章主要介紹了JavaScript常用的簡(jiǎn)寫技巧,列舉了20條js中常用的簡(jiǎn)寫技巧,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下2017-08-08
JavaScript降低代碼圈復(fù)雜度優(yōu)化技巧
當(dāng)一個(gè)項(xiàng)目經(jīng)過持續(xù)迭代,不斷增加功能,逐漸變成一個(gè)復(fù)雜的產(chǎn)品時(shí),新功能的開發(fā)變得相對(duì)困難,其中一個(gè)很大的原因是代碼復(fù)雜度高,導(dǎo)致可維護(hù)性和可讀性都很差,本文將從前端JavaScript的角度出發(fā),介紹一些有效的方法和技巧來優(yōu)化前端代碼的圈復(fù)雜度2023-10-10
Bootstrap彈出框(modal)垂直居中的問題及解決方案詳解
這篇文章主要介紹了Bootstrap彈出框(modal)垂直居中的問題及解決方案詳解的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
input?獲取光標(biāo)位置設(shè)置光標(biāo)位置方案
這篇文章主要為大家介紹了input?獲取光標(biāo)位置設(shè)置光標(biāo)位置方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
js實(shí)現(xiàn)最短的XML格式化工具實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)最短的XML格式化工具,實(shí)例分析了基于jquery-latest.js實(shí)現(xiàn)XML代碼格式化的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

