You can easily have a JavaScript hash/object that returns a default value for unset keys/properties -- as long as you need to support only recent browsers.
The key are JavaScript proxies Show archive.org snapshot from ECMAScript 6 that allow implementing a custom getter method. They work like this:
var hash = new Proxy({}, {
get: function(object, property) {
return object.hasOwnProperty(property) ? object[property] : 'hello';
}
});
When you set a key, you can read its value just like always.
hash['foo'] = 23
hash['foo']
// => 23
But instead of returning undefined
for unset keys, our get
proxy now returns our default value.
hash['bar']
// => 'hello'
This is supported in Chrome 49+, Firefox 18+, Safari 10+, and Edge 13+.
Posted by Arne Hartherz to makandra dev (2017-02-10 10:25)