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.
weakRef = Components.utils.getWeakReference(obj);
obj
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.
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; } }