WeakRef polyfill
HTML
<button onclick="checkOriginalObject()">
Check original object
</button><br>
<button onclick="checkWeakRef()">
Check weak reference
</button><br>
<button onclick="deleteOriginalObject()">
Delete original object
</button>
JavaScript
const WeakRefPolyFill = (function (wm) {
function WeakRefPolyFill(target) {
wm.set(this, target);
}
WeakRefPolyFill.prototype.deref = function () {
return wm.get(this);
};
return WeakRefPolyFill;
})(new WeakMap());
let originalObject = {foo: "bar"}
let weakRef = new WeakRefPolyFill(originalObject)
function checkOriginalObject() {
console.log(originalObject)
}
function checkWeakRef() {
console.log(weakRef.deref())
}
function deleteOriginalObject() {
originalObject = undefined
}