【问题标题】:Calling this inside nested object in array return undefined [duplicate]在数组中的嵌套对象内调用此返回未定义 [重复]
【发布时间】:2015-11-23 12:00:20
【问题描述】:

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

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

};

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

【问题讨论】:

  • 如果您不在任何函数中,this 指的是全局对象而不是您正在构造的对象。由于global.dog 不存在,您将grey 属性设置为undefined
  • 这和node.js有什么关系?

标签: javascript


【解决方案1】:

正如其他人所指出的,this 不存在于块作用域中,仅存在于函数作用域中。

你最好分阶段定义你的对象:

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

【讨论】:

    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 2021-05-02
    • 2021-01-23
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    相关资源
    最近更新 更多