如何引用对象中的其他节点?

时间:2015-01-30 06:49:56

标签: javascript

我有一个看起来像这样的js-object:

Inköp: {
    name: 'Inköp',
    key: 73,
    def: Kvitto,
    menu: {
        Kvitto: {
            key: 75,
            name: 'med kvitto',

        },
        Faktura: {
            key: 70,
            name: 'på faktura',
        }
    }
}

关键Def是deafult的简称,并且假设用于检索Inköp.menu.Kvitto,我当前的设置显然不起作用,我应该怎么做?

1 个答案:

答案 0 :(得分:0)

您无法在同一个对象文字中引用对象文字中的另一个对象节点,但可以从文字外部执行此操作。例如,您可以这样做:

var obj = {
    Inköp: {
        name: 'Inköp',
        key: 73,
        menu: {
            Kvitto: {
                key: 75,
                name: 'med kvitto',

            },
            Faktura: {
                key: 70,
                name: 'på faktura',
            }
        }
    }
};
obj.def = obj.Inköp.menu.Kvitto;

您还可以将def设置为字符串值"Kvitto",然后您可以从文字外部访问,如下所示:

obj.Inköp.menu[obj.Inköp.def];

这取决于您是否希望简洁地声明您的文字或使用它。