Javascript从循环中的嵌套对象调用方法

时间:2015-07-30 00:24:28

标签: javascript node.js oop

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

示例:

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

1 个答案:

答案 0 :(得分:4)

您需要使用密钥访问内部对象。另外,将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());
}