立即執行函式的用法
阿新 • • 發佈:2021-07-13
立即執行函式的用法
1、定義
是定義函式以後立即執行該函式
2、寫法(2種)
第一種:用小括號把整個函式定義和呼叫包裹起來
(function(){ //functionbody }())第二種:用括號把函式定義包裹起來,後面加一對小括號
(function( // function body ) {})()
3、立即執行函式的作用
為了防止變數命名衝突(變數汙染),我們採用立即執行函式策略。因為立即函式內部會形成一個單獨的作用域,我們可以一些封裝外部無法讀取的(私有變數臨時變數或區域性變數),外面訪問不到這樣就可以避免變數汙染;
注意:多個立即函式中間必須加分號隔開
(function() { var num = 10; })(); (function() { var num = 10; })();
4、立即執行函式的引數
(function(j){ //程式碼中可以使用j })(i);如果立即執行函式中需要全域性變數,全域性變數會被作為一個引數傳遞給立即執行函式(上例中的i就是一個全域性變數,i代表的是實參,j是i在立即執行函式中的形參)。
5、立即執行函式返回值
像其他函式一樣,立即執行函式也可以有返回值。除了可以返回基本型別值以外,立即執行函式也能返回任何型別的值,比如物件,函式。
舉例:
//變數result用來接受由立即執行函式返回的函式function() { return a + b;},result()相當於呼叫函式 var result = (function() { var a = 2; var b = 2; return function() { return a + b; } })(); console.log(result); //返回一個函式 console.log(result()); //4
結果: