我正试图围绕这个“争论传递”的想法。在我正在阅读的一本书中,它指出参数仅通过值传递,而不是通过引用传递。
function addTen(num) {
num + = 10;
return num;
}
var count = 20;
var result = addTen(count);
alert(count); // 20 - no change
alert(result); // 30
上面的例子很清楚,但下面的例子让我很困惑。
当 person 被传递给 setName 函数时,它不是镜像局部变量 'obj' 并沿函数中的语句向下流动吗?即 person 首先被设置为属性名称,然后它被分配给一个新的对象,最后这个新创建的人对象被分配属性'Gregg'????
为什么你得到'尼古拉斯'!!!!
function setName(obj) {
obj.name = "Nicholas";
obj = new Object();
obj.name = "Greg";
}
var person = new Object();
setName(person);
alert(person.name); //" Nicholas"