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 dynamically create it? But is this not autovivification because you must declare the underlying structure to first be an object or an array?
Asked
Active
Viewed 2,128 times
7
-
1This is the sort of programming language specific question that belongs on [programmers.se]. – zzzzBov Oct 07 '11 at 18:35
2 Answers
14
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.

gilly3
- 87,962
- 25
- 144
- 176
12
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

Ebrahim Byagowi
- 10,338
- 4
- 70
- 81