Components.utils.getWeakReference

このメソッドは Firefox 3 で導入され、オブジェクトの弱い参照 (weak reference)を得るために使います。オブジェクトの参照を得るには、結果のオブジェクトに対して get() を実行する必要があります。

加えて、 get() が成功しても、オブジェクトが有効であるとは限りません。単にまだガベージコレクトされていないからかもしれないからです。オブジェクトが本当に欲しいものであるかを確認するには、 (DOM ノードの Node.parentNode() のように) 他の角度からチェックする必要があります。

文法

weakRef = Components.utils.getWeakReference(obj);

引数

obj
弱い参照を得ようとするオブジェクト。

注: Gecko 11.0 では、 このメソッドは objnull の場合に例外を投げるように変更されました。 Gecko 12.0 で、暗黙に失敗するという以前の動作に戻されました。

こちらの例では、ウィンドウへの弱い参照を把握します。そして後から、配列の中から一致するものを探して使用します。

var arr = [];

arr.push(Cu.getWeakReference(window));

// この部分は他のブロックで実行されます。
for (var i=0; i<arr.length; i++) {
  if (arr[i].get() == window) {
    // ウィンドウが見つかった
    break;
  }
}

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, Taken, Mgjbot
最終更新者: mfuji09,