如何避免在我的 Firefox 附加组件中出现“TypeError: can't access dead object”状态?

rli*_*lib 5 javascript mozilla object firefox-addon

似乎检查null作品,但这是一种正确的方法吗?如何正确检查对象是否已死?死对象的定义在哪里?

Sud*_*oti -1

死对象意味着其父文档已被销毁的对象,并且引用被删除以消除附加组件中的内存泄漏。因此您可以检查该元素,如下所示:

if( typeof some_element !== 'undefined') {
    //its not dead
}
Run Code Online (Sandbox Code Playgroud)

请参阅死对象参考

  • 这个答案是错误的。如果“some_element”引用了一个不再存在的对象,那么您所拥有的仍然是一个跨隔间包装器 - 尽管如果您尝试使用它,它会抛出异常。所以`typeof some_element`仍然是`object`并且它是非空值。 (3认同)