在对象上有一个活动的Object.observe是否会阻止它被垃圾回收?您是否需要先调用Object.unobserve以允许它被垃圾回收?或者GCing一个对象是否删除了所有活动的观察者?
答案 0 :(得分:6)
观察对象并不能保持活着。一旦对象死亡,其观察者将不再接收任何事件。至少在V8的实现中是这样,这是迄今为止唯一的实现。如果这个功能有一天成为标准,那么可以安全地假设它也适用于其他实现。
但是,观察使其活动观察者保持活动状态,以及与每个观察者函数关联的一些内部堆分配数据结构。事实上,这些额外的数据只会在函数本身也已经死亡时死亡,即使它已经很久没有观察到任何东西了。