函數參數的傳遞方式,一般分爲兩種:
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函數中的參數都是局部變量。
// 未完待續