立即函式 IIFE
全名 「immediately-invoked function expression」,意即 立即呼叫函式表達式
。
可依照 具名與否
以及()位置
分成四種寫法。
此外,多個 IIFE 中間必須要有;
斷行,才不會違法 JavaScript 規範。
1 | (function IIFE_1() { |
侷限作用域
IIFE 有一個特點是 無法在函式外再次被執行
1 | (function IIFE() { |
1 | (function IIFE() { |
傳遞參數
IIFE 是利用後面的 ()
傳遞參數,並在前面的()
接收參數。
1 | (function(name) { |
表達式
不要忘記 IIFE 也是表達式,所以也能賦予值給變數使用。
1 | var myName = (function(name) { |
為何要使用 IIFE
主要是避免污染到全域環境並導致污染與衝突。
在許多框架中,會將框架運作的程式碼包在 IIFE 之中,最後在回傳掛載在 全域環境變數上
做使用。