Javascript Can';在对象数组上循环时调用public方法

Javascript Can';在对象数组上循环时调用public方法,javascript,Javascript,我开始在JavaScript中使用OOP,我有一个简单的对象数组,我试图在每个对象上循环并调用一个方法,但是,当我在Google Chrome下运行此程序时,JavaScript调试器中出现以下异常: Uncaught TypeError: Object 0 has no method 'drawHisto' 未捕获的TypeError:对象0没有方法“drawHisto” 下面是简化的代码段: var直方图=[]; var h1=null; var h2=null; var h3=null;

我开始在JavaScript中使用OOP,我有一个简单的对象数组,我试图在每个对象上循环并调用一个方法,但是,当我在Google Chrome下运行此程序时,JavaScript调试器中出现以下异常:

Uncaught TypeError: Object 0 has no method 'drawHisto' 未捕获的TypeError:对象0没有方法“drawHisto” 下面是简化的代码段:

var直方图=[];
var h1=null;
var h2=null;
var h3=null;
函数Init(){
h1=新直方图(画布1,“红色”);
h2=新直方图(画布2,“蓝色”);
h3=新直方图(画布3,“绿色”);
直方图=[h1,h2,h3];
}
函数直方图(画布、颜色){
//这是我的构造函数
}
Histogram.prototype.drawHisto=函数(){
//我将在这里添加代码来绘制直方图
}
函数直方图(){
for(直方图中的var h){
h、 drawHisto();//引发异常!
}

//h1.drawHisto()JavaScript中的
for in
循环不会迭代数组的值,而是迭代对象的键。只需像往常一样使用
for
循环:

function DrawHistograms() {
    for (var i = 0; i < histograms.length; i++) {
        histograms[i].drawHisto();
    }
}

JavaScript中的
for in
循环不会迭代数组的值,而是迭代对象的键。只需像往常一样使用
for
循环即可:

function DrawHistograms() {
    for (var i = 0; i < histograms.length; i++) {
        histograms[i].drawHisto();
    }
}
Javascript中的for-in循环一开始可能会让人惊讶:它不会循环数组的值,而是循环键。对于直接数组,我倾向于选择更详细但更清晰的for-in循环标准:

for (var i = 0; i < histograms.length; i++) {
    histograms[i].drawHisto();
}
Javascript中的for-in循环一开始可能会让人惊讶:它不会循环数组的值,而是循环键。对于直接数组,我倾向于选择更详细但更清晰的for-in循环标准:

for (var i = 0; i < histograms.length; i++) {
    histograms[i].drawHisto();
}

谢谢!我知道一定要简单。谢谢!我知道一定要简单。
for (var key in obj) {
    if(obj.hasOwnProperty(key)) {
         // proceed with confidence
    }
}