/bio/skills/blog/math

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)

2025 Stefano De Vuono