--- title: 'TypeError: can''t access dead object' slug: Web/JavaScript/Reference/Errors/Dead_object tags: - Addon - Addons - Error - Errors - JavaScript translation_of: Web/JavaScript/Reference/Errors/Dead_object ---
TypeError: can't access dead object
{{jsxref("TypeError")}}
メモリ使用の向上とメモリリーク防止のため、Firefox はアドオンに対して、親ドキュメントが破棄された後に DOM オブジェクトへ強い参照を保持することをできなくしています。死んだオブジェクトは、DOM で棄された後にもかかわらず、存続する DOM 要素への強い参照を保持しています。この問題を回避するために、外部ドキュメント内の DOM ノードへの参照を、そのドキュメントに固有のオブジェクトに格納し、ドキュメントがアンロードされるときにクリーンアップするか、または弱い参照にするべきです。
Components.utils は特権コードで使用できる isDeadWrapper()
メソッドを提供しています。
if (Components.utils.isDeadWrapper(window)) { // dead }
非特権コードは Component.utils にアクセスできないため、例外をキャッチするしかありません。
try { String(window); } catch (e) { console.log("window is likely dead"); }