Я работаю над объектно-ориентированным проектом в JavaScript. У меня есть массив [] объектов разных классов, и я повторяю его, и я хочу проверить класс объекта в массиве [i]. Есть ли способ обнаружить это? Это может помочь вам понять, что я имею в виду:Как определить, какой класс является объектом в массиве в JavaScript
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
}
}
Это общее представление о том, что мне нужно делать, но если условие является сложным немного. Как я могу определить класс элемента по частям [i]? Моим резервным решением является предоставление каждому объекту поля типа.
Ах работал как шарм. Спасибо! –
Будьте осторожны с * instanceof *, все, что он делает, это проверить, что 'Rook.prototype' находится в частной цепочке' [[prototype]] '' pieces [i] '. Это может быть ОК в зависимости от того, как вы реализовали свое наследование и что вам действительно нужно знать. Свойство конструктора может быть более подходящим (это общедоступное свойство, поэтому его можно установить на подходящее значение при первоначальном наследовании). – RobG