This method was introduced in Firefox 3 and is used for obtaining a weak reference for an object. To obtain the object reference, you have to call get() on the resulting object.

In addition, just because get() succeeds doesn't mean your object is valid. It might simply not have been garbage collected yet. You might have to check other aspects of the object (like Node.parentNode() on a DOM node) to verify the object is truly what you want.

Syntax

weakRef = Components.utils.getWeakReference(obj);

Parameters

obj
The object for which to obtain a weak reference.

Note: In Gecko 11.0, this method was changed to throw an exception if obj is null. In Gecko 12.0, the previous behavior of silently failing has been restored.

Example

In this example here, a weak reference to a window is held. And then later on it is matched in the array and used.

var arr = [];

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

//now lets say this code runs in another block:
for (var i=0; i<arr.length; i++) {
  if (arr[i].get() == window) {
    //found the window
    break;
  }
}