私はそのクラスのすべてのインスタンスでクラスのメソッドを呼び出そうとしています。Javascriptでクラスのすべてのインスタンスでメソッドを呼び出しますか?
現在、私は私のクラスのすべてのループのためにこれを使用してクラスChecker()
のすべてのインスタンスを通じてcheckers[]
Iループと呼ばれる、配列に格納されている:私は、コードを実行すると
this.drawCheckers = function() {
for(var checker in this.checkers) {
checker.draw();
}
}
を、エラーが表示される: localcheckers.js:57 Uncaught TypeError: checker.draw is not a function
どうすれば修正できますか?チェッカーはチェッカー
あなたのためにthis.drawCheckers = function() {
for(var i = 0; i < this.checkers.length; i++) {
if(this.checkers[i] instanceof Checker)
this.checkers[i].draw();
}
}
は 'アレイ上for..in'を使用しないでください。しかし、もしあなたがそうしたら、あなたは 'this.checkers [checker] .draw()'と言わなければなりません。これは、 'for..in'ループ(https:// developer)のためです。 mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in)work: 'checker'変数は値ではなくキー/インデックスです。 – nnnnnn
['for of'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of)を使う代わりに、' checker'がインスタンスになります配列内のインデックスではない –