Weak Maps
by msfrisbie
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser.js"></script>
<script type="text/babel">
// Demonstration of weak map basics
var wm = new WeakMap();
var myObj = {};
wm.set(myObj, "boofar");
console.log(wm.get(myObj)); // boofar
wm.delete(myObj);
console.log(wm.get(myObj)); // undefined
// Demonstration of weak references
var fooMap = new WeakMap();
var fooObj = {
fooProp: {}
};
fooMap.set(fooObj.fooProp, "go giants");
console.log(fooMap.get(fooObj.fooProp)); // go giants
delete fooObj.fooProp;
console.log(fooMap.get(fooObj.fooProp)); // undefined
</script>