ES5中的函數都是按值傳遞的

函數參數的傳遞方式,一般分爲兩種:

1.按值傳遞(call by value):函數的形參是被調用時所傳實參的副本。修改形參的值並不會影響實參。
2.按引用傳遞(call by reference):函數的形參接收實參的隱式引用,而不再是副本。這意味着函數形參的值如果被修改,實參也會被修改。同時兩者指向相同的值。

    function box(obj) {           // 注意: 這裏是傳遞引用類型的參數,而不是按引用傳遞
        obj.name = 'mangoyi';
        var obj = new Object();
        obj.name = 'yixiansheng';  // 函數外是訪問不到這個對象的。
    }
    var obj = new Object();
    box(obj);
    console.log(obj.name); // mangoyi
    // 在函數內部修改參數的值,原始的引用仍然保持不變。當在函數內部重寫obj時,這個變量的引用是局部的。
    // 當該函數執行完後這個局部變量也就被銷燬了。
    // ES5函數中的參數都是局部變量。
    // 未完待續
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章