我正在试图围绕这个'争论传递'的想法。在我读的一本书中,它指出参数只是通过值而不是参考来传递。在JavaScript中,这个参数是如何通过值传递而不是通过引用传递的?
function addTen(num) {
num + = 10;
return num;
}
var count = 20;
var result = addTen(count);
alert(count); // 20 - no change
alert(result); // 30
上面的例子很清楚,但下面的例子让我非常困惑。
当人传递给setName函数时,是不是镜像局部变量'obj' 并向下传递函数中的语句? 即人首先被设置为属性名称,然后将其分配给新的对象,并且最后为这个新创建的人物对象分配属性'Gregg'?
为什么你得到'尼古拉斯'!!!!
function setName(obj) {
obj.name = "Nicholas";
obj = new Object();
obj.name = "Greg";
}
var person = new Object();
setName(person);
alert(person.name); //" Nicholas"
请找你的答案在这里 - http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-参考或通过价值语言 – abipc