JavaScript立即執(zhí)行函數(shù)用法解析
我們知道,在一般情況下,函數(shù)必須先調(diào)用才能執(zhí)行,如下所示,我們定義了一個函數(shù),并且調(diào)用,
function fn(){
console.log(1);
}
fn();
打印結(jié)果為:

如果不調(diào)用的話,我們打印的結(jié)果永遠(yuǎn)不會顯示。
所以這里就會提到我們的立即執(zhí)行函數(shù),所謂立即執(zhí)行函數(shù),就是不需要調(diào)用,立馬就能執(zhí)行的函數(shù)。
立即執(zhí)行函數(shù)有兩種最常見的寫法:
(function(){})()(function(){}())
舉個例子:
(function fn(){
console.log(2);
})()
打印結(jié)果為:

打印成功。
立即執(zhí)行函數(shù)中的第二個小括號就相當(dāng)于調(diào)用函數(shù),我們同樣可以給立即執(zhí)行函數(shù)傳參數(shù),,將我們要傳遞的參數(shù)寫在第二個()里面,作為實(shí)參,
如下:
(function fn(a,b){
console.log('a+b='+a+b);
})(1,2)
打印結(jié)果為:

第二種立即執(zhí)行函數(shù)使用方法和第一種基本相似,不在贅述。
需要注意的是:如果有多個立即執(zhí)行函數(shù),他們之間需要逗號分隔,否則會報(bào)錯。同時,在立即執(zhí)行函數(shù)里面,也可以采用匿名函數(shù)的形式書寫。
那么立即執(zhí)行函數(shù)有什么作用或者好處呢?
它最大的作用就是獨(dú)立創(chuàng)建了一個作用域。我們知道,javascript 中沒有私有作用域的概念,如果在多人開發(fā)的項(xiàng)目上,在全局或局部作用域中聲明了一些變量,可能會被其他人不小心用同名的變量給覆蓋掉,而立即執(zhí)行函數(shù)里面的變量都是局部變量,不會有命名沖突的情況。
到此這篇關(guān)于JavaScript立即執(zhí)行函數(shù)的文章就介紹到這了,更多相關(guān)JavaScript立即執(zhí)行函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
TypeScript?泛型推斷實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了TypeScript?泛型推斷實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
微信小程序 獲取當(dāng)前地理位置和經(jīng)緯度實(shí)例代碼
這篇文章主要介紹了微信小程序 獲取當(dāng)前地理位置和經(jīng)緯度實(shí)例代碼的相關(guān)資料,這里附有實(shí)例代碼,及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-12-12
rollup打包引發(fā)對JS模塊循環(huán)引用思考
這篇文章主要為大家介紹了rollup打包引發(fā)的對JS模塊循環(huán)引用的思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
wasm+js實(shí)現(xiàn)文件獲取md5示例詳解
這篇文章主要為大家介紹了wasm+js實(shí)現(xiàn)md5文件獲取示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

