【发布时间】:2014-11-07 03:11:23
【问题描述】:
虽然有些人说这个问题以前已经回答过,但它只是以前对另一个更具体的问题给出的答案(即专门询问按引用调用/按值调用) ,而这个问题并不预设任何一个知识)
下面的代码看起来很混乱。我们可以从逻辑上推断,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/
【问题讨论】:
-
哇,非常感谢您指出这一点
标签: javascript variables computer-science