1. 程式人生 > 其它 >立即執行函式的用法

立即執行函式的用法

立即執行函式的用法

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

結果: