【发布时间】:2013-09-30 05:01:13
【问题描述】:
我尝试了以下代码,但它会提醒旧对象名称属性?我知道对象是通过引用传递的,但是它是通过引用传递的,那么在函数内部更改的对象也应该在函数外部更改,不是吗?
function setName(obj) {
obj.name = "raziq";
obj = new Object();
obj.name = "abdul";
}
var person = new Object();
setName(person);
alert(person.name); //still yields raziq
如果对象是通过引用传递的,我有点困惑,那么应该提醒新名称为什么它仍然提醒 raziq 作为对象的名称?
【问题讨论】:
-
为什么要在 setName 中创建一个新对象?
-
@ThomasWood 为了说明问题,我会冒险猜测
-
看看它是否改变了函数外部的人对象,因为如果对象是通过引用传递的,那么函数内部的新对象应该反映在函数外部不是吗?
-
请阅读post中的一些答案
标签: javascript object