在这段代码中,我创建了一个对象数组,并尝试遍历它们,在每个对象上调用一个方法。该方法是对象原型的一部分。
以下是设置:
function TestObj(name) {
this.name = name;
}
TestObj.prototype.speak = function() {
console.log(this.name);
};
var myArray = [
new TestObj('first'),
new TestObj('second')
];
我知道我可以正确访问该方法,因为这样可以提供正确的输出:
myArray[0].speak(); // displays "first"
但是,我试过的两个循环都不会输出任何内容:
for (var i = 0; i < myArray.length; i++) {
myArray[i].speak();
}
for (var key in myArray) {
key.speak();
}
答案 0 :(得分:1)
我的第二个循环key.speak();
到myArray[key].speak();
for (var key in myArray) {
myArray[key].speak();
}
function TestObj(name) {
this.name = name;
}
TestObj.prototype.speak = function() {
console.log(this.name);
};
var myArray = [
new TestObj('first'),
new TestObj('second')
];
for (var i = 0; i < myArray.length; i++) {
myArray[i].speak();
}
for (var key in myArray) {
myArray[key].speak(); /*change here in your code*/
}
&#13;