是否有一个库来支持Javascript对象的自动修复?

Jam*_*hon 7 javascript object autovivification

无论如何,无论是本地还是通过库,在Javascript对象上使用自动生成?

IE,假设foo是一个没有属性的对象,能够做foo.bar.baz = 5而不是需要foo.bar = {}; foo.bar.baz = 5.

sle*_*man 6

您无法使用所需的语法完全执行此操作.但像往常一样,在JS中你可以编写自己的函数:

function set (obj,keys,val) {
    for (var i=0;i<keys.length;i++) {
        var k = keys[i];
        if (typeof obj[k] == 'undefined') {
            obj[k] = {};
        }
        obj = obj[k];
    }
    obj = val;
}
Run Code Online (Sandbox Code Playgroud)

所以现在你可以这样做:

// as per you example:
set(foo,['bar','baz'],5);
Run Code Online (Sandbox Code Playgroud)

而不必担心如果barbaz定义.如果你不喜欢[..]函数调用,你总是可以迭代arguments对象.