【发布时间】:2016-02-13 00:45:15
【问题描述】:
当我将appendChild() 转换为dom[0] 时,您会认为它移动了dom[1] 和dom[2],但实际上它复制/复制了dom[0] 下的元素,因为它们仍然是实际dom 数组的元素.
//JS
var dom = [];
var element = new Array("div","p","h1");
for(var i=0; i < element.length; i++){
dom.push(document.createElement(element[i]))
}
dom[0].appendChild(dom[1]);
dom[0].appendChild(dom[2]);
console.log(dom); //div,p,h1
console.log(dom[0].children);//p,h1
console.log(dom.length); //3
问题:如果有的话,元素是否会从内存中删除?
【问题讨论】:
-
没有复制....数组包含对dom对象的引用
-
可以使用数组方法
.shift()将对象移动到数组的首位。 -
当无法从任何变量或 DOM 元素中访问对象时,垃圾收集器会将其从内存中删除。
标签: javascript html dom memory