JavaScript立即執(zhí)行函數(shù)用法解析
我們知道,在一般情況下,函數(shù)必須先調(diào)用才能執(zhí)行,如下所示,我們定義了一個(gè)函數(shù),并且調(diào)用,
function fn(){ console.log(1); } fn();
打印結(jié)果為:
如果不調(diào)用的話,我們打印的結(jié)果永遠(yuǎn)不會(huì)顯示。
所以這里就會(huì)提到我們的立即執(zhí)行函數(shù),所謂立即執(zhí)行函數(shù),就是不需要調(diào)用,立馬就能執(zhí)行的函數(shù)。
立即執(zhí)行函數(shù)有兩種最常見的寫法:
(function(){})()
(function(){}())
舉個(gè)例子:
(function fn(){ console.log(2); })()
打印結(jié)果為:
打印成功。
立即執(zhí)行函數(shù)中的第二個(gè)小括號(hào)就相當(dāng)于調(diào)用函數(shù),我們同樣可以給立即執(zhí)行函數(shù)傳參數(shù),,將我們要傳遞的參數(shù)寫在第二個(gè)()里面,作為實(shí)參,
如下:
(function fn(a,b){ console.log('a+b='+a+b); })(1,2)
打印結(jié)果為:
第二種立即執(zhí)行函數(shù)使用方法和第一種基本相似,不在贅述。
需要注意的是:如果有多個(gè)立即執(zhí)行函數(shù),他們之間需要逗號(hào)分隔,否則會(huì)報(bào)錯(cuò)。同時(shí),在立即執(zhí)行函數(shù)里面,也可以采用匿名函數(shù)的形式書寫。
那么立即執(zhí)行函數(shù)有什么作用或者好處呢?
它最大的作用就是獨(dú)立創(chuàng)建了一個(gè)作用域。我們知道,javascript
中沒有私有作用域的概念,如果在多人開發(fā)的項(xiàng)目上,在全局或局部作用域中聲明了一些變量,可能會(huì)被其他人不小心用同名的變量給覆蓋掉,而立即執(zhí)行函數(shù)里面的變量都是局部變量,不會(huì)有命名沖突的情況。
到此這篇關(guān)于JavaScript立即執(zhí)行函數(shù)的文章就介紹到這了,更多相關(guān)JavaScript立即執(zhí)行函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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-12rollup打包引發(fā)對(duì)JS模塊循環(huán)引用思考
這篇文章主要為大家介紹了rollup打包引發(fā)的對(duì)JS模塊循環(huán)引用的思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08wasm+js實(shí)現(xiàn)文件獲取md5示例詳解
這篇文章主要為大家介紹了wasm+js實(shí)現(xiàn)md5文件獲取示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08