0
MDN says这是一种从节点中删除所有孩子的方法。但是由于只有第一个子节点在代码中被引用,其他人是否成为内存孤儿?任何或所有浏览器中的情况是否都是已知的?这样做时,DOM标准中是否存在需要垃圾回收的东西?node.removeChild(node.firstChild)是否创建内存泄漏?
MDN says这是一种从节点中删除所有孩子的方法。但是由于只有第一个子节点在代码中被引用,其他人是否成为内存孤儿?任何或所有浏览器中的情况是否都是已知的?这样做时,DOM标准中是否存在需要垃圾回收的东西?node.removeChild(node.firstChild)是否创建内存泄漏?
我想你指的这个例子
// This is one way to remove all children from a node
// box is an object reference to an element with children
while (box.firstChild) {
//The list is LIVE so it will re-index each call
box.removeChild(box.firstChild);
}
不,它不会导致内存泄漏。 第一个孩子被移除后会发生什么,第二个孩子将作为第一个孩子的位置,等等,直到没有更多的孩子离开。
垃圾收集通常不会按需求提供,虚拟机会在它认为可以的时候这样做,而浏览器之间的确会有所不同。