我相信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
?
答案 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());
}