在数组中调用此嵌套对象返回undefined

时间:2015-08-28 18:28:00

标签: javascript

我试图在node.js中的数组中的嵌套对象内调用this,但它返回undefined

var foo = {
    dog: 'max',
    cat: {
        names: [
            { grey: this.dog }
        ]
    }

};

当我尝试foo.cat.names[0].grey时,它会返回undefined。我没有任何功能,所以我不相信我必须缓存this,对吧?

1 个答案:

答案 0 :(得分:2)

正如其他人所指出的那样,this并不存在于块范围内,只存在于函数范围内。

最好在以下阶段定义对象:

var foo = {};
foo.dog = 'max';
foo.cat = {
    names: [
        { grey: foo.dog }
    ]
}