今天看了书,发现下面的难以理解,请大神指点:
function setName(obj){
obj.name="Nicholas";
obj=new Object();
obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name); //"Nicholas"
在把person传递给setName()之后,其name属性被设置为"Nicholas".让后,又将一个新的对象赋给变量obj,同时将其name属性设置为"Greg".如果person是按引用来传递,那么person就自动会被吸引改为指向其name的属性值为"Greg"的新对象.但是,但接下来访问person.name的时候,显示的值仍为"Nicholas".这说明即使在函数内部修改了参数的的值,但原始的引用人保持不变.实际上,但函数内部重写obj时,这个变量引用的就是一个局部对象了.而局部对象会在函数执行完毕之后立即被销毁.粗体为不明白的地方,希望可以指点.