虽然有些人说这个问题之前已经得到了回答,但它只能回答以下具体问题的另一个问题(即具体询问引用引用/按值引用,而这个问题并不以此为前提)为什么一个变量会改变,但另一个不变呢?
下面的代码看起来很混乱。我们可以从逻辑上推论出z.id在函数之后更新的原因是因为它是一个对象。但为什么? javascript有什么特点或特点呢?
function changea(a) {
a = 100; // does not change a
} // no return
function changez(z) {
z.id = 100; // does change z
} // no return
var a = 0; // a is zero
changea(a) // a variable
alert('variable a is equal to ' + a); // why does this stay at zero?
var z = {id: 0};
changez(z);
alert('variable z.id is equal to ' + z.id); // why does this change to 100
在这里看到的演示:http://jsfiddle.net/u0pysgjy/7/
看到这个问题:http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language – 2014-11-07 03:14:47
非常感谢您的指出 – docodemore 2014-11-07 03:23:08