【问题标题】:Javascript call methods from nested objects in loopJavascript从循环中的嵌套对象调用方法
【发布时间】:2015-10-21 04:40:37
【问题描述】:

我相信this 指向了错误的对象,但无法弄清楚如何循环遍历object,并且在每次迭代中,从嵌套的object 调用method

例子:

var obj = {
  one: {
    id: 1,
    name: 'one',
    getName: function() {
      return this.name();
    }
  },
  two: {
    id: 2,
    name: 'two',
    getName: function() {
      return this.name();
    }
  }
};

for (var key in obj) {
  console.log(key.getName());
}

这将返回错误Object one has no method getName。如何访问嵌套的method

【问题讨论】:

  • 不确定这是否适合您正在做的事情,但看起来您的外部 obj 应该是对象数组,而不是对象对象
  • 这在这种情况下可以工作,但 sn-p 被剥离了。项目需要一个对象。

标签: javascript node.js oop


【解决方案1】:

您需要使用密钥访问内部对象。另外,将name 作为属性返回,而不是方法调用

var obj = {
  one: {
    id: 1,
    name: 'one',
    getName: function() {
      return this.name;
    }
  },
  two: {
    id: 2,
    name: 'two',
    getName: function() {
      return this.name;
    }
  }
};

for (var key in obj) {
  console.log(obj[key].getName());
}

【讨论】:

    猜你喜欢
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2016-11-02
    相关资源
    最近更新 更多