我开始在 JavaScript 中使用 OOP,我有一个简单的对象数组,我试图循环并在每个对象上调用一个方法,但是,当我在 Google Chrome 下运行它时,我得到以下JavaScript 调试器中的异常:
未捕获的类型错误:对象 0 没有方法“drawHisto”
下面的简化代码片段:
var histograms = [];
var h1 = null;
var h2 = null;
var h3 = null;
function Init() {
h1 = new Histogram(canvas1, "red");
h2 = new Histogram(canvas2, "blue");
h3 = new Histogram(canvas3, "green");
histograms = [ h1, h2, h3];
}
function Histogram(canvas, color) {
// this is my constructor
}
Histogram.prototype.drawHisto = function() {
// I will add code here to draw the histogram
}
function DrawHistograms() {
for (var h in histograms) {
h.drawHisto(); // Throws exception!
}
// h1.drawHisto() <--- this works
}
知道我可能做错了什么吗?我已经稍微简化了这里的代码,所以如果你发现问题一定出在其他地方,我可以添加额外的上下文。
谢谢你。