繁体   English   中英

在Javascript中的类的每个实例上调用方法?

[英]Calling a method on every instance of a class in Javascript?

我试图在该类的每个实例上调用类的方法。

目前,我所有的类都存储在名为checkers[]的数组中

我使用以下for循环遍历Checker()类的每个实例:

this.drawCheckers = function() {
    for(var checker in this.checkers) {
        checker.draw();
    }
}

运行代码时,出现错误: localcheckers.js:57 Uncaught TypeError: checker.draw is not a function

我该如何解决?

在for ... in循环中,存储在checker中的值不是this.checkers中的属性,而是属性名称。

您需要做的是访问该属性,然后在其上调用draw。

this.drawCheckers = function() 
{
    for(var checker in this.checkers) {
        this.checkers[checker].draw();
    }
}

在此处查看工作示例: https : //jsbin.com/fezixaboso/edit?js,console

仅当checker是Checker的实例时才调用draw()

this.drawCheckers = function() {
    for(var i = 0; i < this.checkers.length; i++) {
        if(this.checkers[i] instanceof Checker)
            this.checkers[i].draw();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM