【发布时间】:2017-06-22 16:01:09
【问题描述】:
在这段代码中,我创建了一个对象数组并尝试遍历它们,并在每个对象上调用一个方法。该方法是对象原型的一部分。
设置如下:
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();
}
【问题讨论】:
-
您的第一个循环有效:jsfiddle.net/k1h67p1e。在你的第二个中,你需要做
myArray[key].speak(); -
@blex,奇怪,netBeans 没有显示任何东西...
-
好的,这似乎是 NetBeans IDE 的问题。如果我打开 Chrome 开发工具,它会显示在控制台上,但不会显示在 Net Beans 浏览器日志中。感谢您的帮助。
-
似乎只是 NetBeans 搞砸了。我重新启动了程序,现在它可以正确显示输出。很烦人。
标签: javascript object for-loop netbeans methods