ES5中的函数都是按值传递的

来源:互联网 发布:java语言与basic 编辑:程序博客网 时间:2024/06/05 07:01

函数参数的传递方式,一般分为两种:

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函数中的参数都是局部变量。    // 未完待续
阅读全文
0 0