JavaScript立即執行函數用法解析
我們知道,在一般情況下,函數必須先調用才能執行,如下所示,我們定義瞭一個函數,並且調用,
function fn(){ console.log(1); } fn();
打印結果為:
如果不調用的話,我們打印的結果永遠不會顯示。
所以這裡就會提到我們的立即執行函數,所謂立即執行函數,就是不需要調用,立馬就能執行的函數。
立即執行函數有兩種最常見的寫法:
(function(){})()
(function(){}())
舉個例子:
(function fn(){ console.log(2); })()
打印結果為:
打印成功。
立即執行函數中的第二個小括號就相當於調用函數,我們同樣可以給立即執行函數傳參數,,將我們要傳遞的參數寫在第二個()裡面,作為實參,
如下:
(function fn(a,b){ console.log('a+b='+a+b); })(1,2)
打印結果為:
第二種立即執行函數使用方法和第一種基本相似,不在贅述。
需要註意的是:如果有多個立即執行函數,他們之間需要逗號分隔,否則會報錯。同時,在立即執行函數裡面,也可以采用匿名函數的形式書寫。
那麼立即執行函數有什麼作用或者好處呢?
它最大的作用就是獨立創建瞭一個作用域。我們知道,javascript
中沒有私有作用域的概念,如果在多人開發的項目上,在全局或局部作用域中聲明瞭一些變量,可能會被其他人不小心用同名的變量給覆蓋掉,而立即執行函數裡面的變量都是局部變量,不會有命名沖突的情況。
到此這篇關於JavaScript立即執行函數的文章就介紹到這瞭,更多相關JavaScript立即執行函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- JavaScript進階知識點作用域詳解
- 簡單談談JavaScript變量提升
- 深入理解JavaScript 變量對象
- JavaScript this的原理以及指向詳解
- JavaScript的三座大山之單線程和異步