将DOM元素中的成员分配给变量是否允许变量自行更新?

时间:2010-04-08 06:35:45

标签: javascript dom

例如,如果我指定

var n = document.getElementById('A').childNodes.length;

然后将一个孩子附加到A,会更新自己还是我必须再次给它分配新长度?

2 个答案:

答案 0 :(得分:5)

不,它不会自动更新。原因是您正在做的是将length属性的分配给变量n。因此,n不知道它来自的对象属性,它只存储一个数字。 JavaScript中的原始类型按值分配/传递,而对象通过引用传递。这就是为什么做var o = document.getElementById('A');会以你描述的方式工作的原因 - 你分配给o的是一个对象,而不是一个原始类型。

注意:“原始类型”是指以下任何一种:未定义,空值,布尔值,数字或字符串

答案 1 :(得分:0)

不,你必须重新评估变量。