【发布时间】:2016-10-07 12:30:36
【问题描述】:
我有一个设置新对象名称的代码。
function setName(human) {
human.name = "Nicholas";
human = new Object();
human.name = "Greg";
};
var newPerson = new Object();
setName(newPerson);
console.log(newPerson.name);
我想使用 person 对象的属性 'name' 的值。
我期望值是“Greg”,但我得到的是“Nicholas”。
这是我的理解:'human' 是一个指向 Object 的指针。当函数被调用时,会创建另一个指向同一个对象的指针,名称为 newPerson。
newPerson 对象的“name”属性将设置为“Nicholas”。然后,在函数的第二行创建另一个 newPerson 对象。因此,第一个实例应该被销毁。然后,这个新对象的“名称”属性将设置为“格雷格”。我哪里错了?
【问题讨论】:
标签: javascript function arguments parameter-passing