当观察到的节点被销毁时,MutationObserver是否被销毁?

时间:2018-06-12 15:14:39

标签: javascript mutation-observers

我只需执行

即可观察节点
new MutationObserver(callback)
  .observe(shape.node, {attributes: true})

正如你所看到的,我没有任何对观察者的引用。观察到的节点将在某个时刻被破坏。

节点和观察者的内存是否已清理干净?或者他们保持自己的生活?如果是这样的话:我怎样才能防止这种情况发生?我不知道节点何时被删除。

Ofc我还可以观察父节点并在父节点更改了#34;子列表时断开第一个观察者的连接。观察但我想避免那个

1 个答案:

答案 0 :(得分:3)

MutationObserver对他们正在观察的节点保持弱引用,并且节点具有对变异观察者的强引用。这意味着在您的情况下,引用观察者的唯一事物是节点对象。如果节点是GCed,则不会引用观察者,因此它也将被GCed。