function setN (obj) {
obj.name = "Jim";
};
var person = new Object();
setN(person);
console.log(person.name);//Jim
person对象指向在堆区中只有一个,而且是全局对象。所以当内部obj添加属性时,函数外部的person对象也添加了改属性。
function steN2 (obj) {
obj.name = "Jim";
obj = new Object();
obj.name = "cpw";
};
var person = new Object();
setN2(person);
console.log(person.name);//cpw
在内部从写obj时,这个变量引用就是一个局部对象,而这个局部对象会随着函数的结束而销毁。此时,原始的引用任然保持不变。
网友评论