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函数中的参数都是局部变量。
    // 未完待续
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章