JavaScriptでOOPを少し試し始めており、ループしてそれぞれのメソッドを呼び出そうとしている単純なオブジェクトの配列がありますが、これをGoogle Chromeで実行すると、次のようになります。 JavaScriptデバッガーの例外:
Uncaught TypeError:オブジェクト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
}
私が間違っているかもしれない何か考えはありますか?ここではコードを少し簡略化したので、問題が他の場所にあるはずだとわかった場合は、コンテキストを追加できます。
ありがとうございました。