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

fen*_*ent 0 javascript dom

例如,如果我指定

var n = document.getElementById('A').childNodes.length;
Run Code Online (Sandbox Code Playgroud)

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

Jim*_*dra 5

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

注意:"原始类型"是指以下任何一种:Undefined,Null,Boolean,Number或String