Does autovivification only have to do with \"derefencing\" undefined structures, because in JavaScript if you specify a index or a property that doesn\'t exist won\'t it dyn
ES6's Proxy
can be used for implementing autovivification,
var tree = () => new Proxy({}, { get: (target, name) => name in target ? target[name] : target[name] = tree() });
Test:
var t = tree();
t.bar.baz.myValue = 1;
t.bar.baz.myValue
Namespacing is one area where autovivification might be handy in JavaScript. Currently to "namespace" an object, you have to do this:
var foo = { bar: { baz: {} } };
foo.bar.baz.myValue = 1;
Were autovivification supported by JavaScript, the first line would not be necessary. The ability to add arbitrary properties to objects in JavaScript is due to its being a dynamic language, but is not quite autovivification.