我正在試圖圍繞這個'爭論傳遞'的想法。在我讀的一本書中,它指出參數只是通過值而不是參考來傳遞。在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