函数参数的传递方式,一般分为两种:
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函数中的参数都是局部变量。
// 未完待续