我在相当复杂的环境中有以下代码:
var cfg = { attributes: true, childList: true, characterData: true };
var observer = new MutationObserver(afunction);
observer.observe(e, cfg);
在实现我的新想法之前,我需要确保observer
在我重新加载相同的脚本意味着覆盖observer
时会自动停止观察。
它会在被覆盖的时候停止观察,还是只在垃圾收集器移除它时停止观察?
答案 0 :(得分:0)
只有在GC删除它时才会停止。 Javascript对象和变量不保留代码创建它们的文件的任何内存,因此重新加载文件不会对先前加载期间创建的对象产生任何影响。
您可以进行明确的检查:
var observer;
if (observer) { // variable from a previous load of file
observer.disconnect();
}
observer = new MutationObserver(afunction);