1

我正在使用 JavaScript 开发一个高度面向对象的项目。我有一个包含不同类对象的数组 [],我正在遍历它,我想检查数组 [i] 中对象的类。我有什么办法可以检测到这一点吗?这可能会帮助您理解我的意思:

var pieces = [new Pawn(), new Rook(), new Knight()];
for(var i = 0; i < pieces.length; i++){
    if(pieces[i] == Rook){
        //Do something with the rook
    }
}

这是我需要做的一般想法,但 if 条件是棘手的一点。如何检测pieces[i]处的元素类别?我的后备解决方案是给每个对象一个“类型”字段。

4

1 回答 1

2

这可能取决于您如何设置继承,但通常您使用instanceofoperator进行检查:

if(pieces[i] instanceof Rook) // ...
于 2013-05-08T22:54:44.887 回答