JavaScript Null Object Pattern
Suppose we want to traverse an object obj
like so obj.key1.key2.key3...
. For any object, we’d have to check that the key (key1
, key2
, key3
, etc) exists while we traverse. Wouldn’t it be nice if each key could reference an empty object, if we didn’t already give it an explicit value?
var handler = {
get: function(target, name){
return name in target ? target[name] : new Proxy({}, handler);
}
};
var obj = new Proxy({}, handler)
obj.a;
obj.b;
obj.a.c;
obj.b.d.e;
It’s magick!!! (availalbe in Chrome 49.0, Edge 13, Firefox 18, and newer versions of Node 6.something or other)