Fuz*_*yma 4 javascript mutation-observers
我通过简单地观察一个节点
new MutationObserver(callback)
.observe(shape.node, {attributes: true})
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有对观察者的任何引用。观察到的节点将在某个时候被破坏。
节点和观察者的内存是否已清理?还是他们保持生命?如果是这样:我如何防止这种情况发生?我不知道何时删除该节点。
Ofc我还可以观察父级,并在父级观察到“子列表已更改”时断开第一个观察者的连接,但我想避免这种情况
MutationObserver对他们正在观察的节点的引用很弱,而对变异观察者的节点的引用很强。这意味着在您的情况下,唯一引用观察者的是节点对象。如果节点是GCed,则不会引用任何观察者,因此也将GC。