このメソッドは Firefox 3 で導入され、オブジェクトの弱い参照 (weak reference)を得るために使います。オブジェクトの参照を得るには、結果のオブジェクトに対して get()
を実行する必要があります。
加えて、 get()
が成功しても、オブジェクトが有効であるとは限りません。単にまだガベージコレクトされていないからかもしれないからです。オブジェクトが本当に欲しいものであるかを確認するには、 (DOM ノードの Node.parentNode()
のように) 他の角度からチェックする必要があります。
文法
weakRef = Components.utils.getWeakReference(obj);
引数
obj
- 弱い参照を得ようとするオブジェクト。
注: Gecko 11.0 では、 このメソッドは obj
が null
の場合に例外を投げるように変更されました。 Gecko 12.0 で、暗黙に失敗するという以前の動作に戻されました。
例
こちらの例では、ウィンドウへの弱い参照を把握します。そして後から、配列の中から一致するものを探して使用します。
var arr = []; arr.push(Cu.getWeakReference(window)); // この部分は他のブロックで実行されます。 for (var i=0; i<arr.length; i++) { if (arr[i].get() == window) { // ウィンドウが見つかった break; } }