JavaScript로 작성된 체스 게임에서 일하고 있습니다. 나는 객체 지향 접근 방식을 취하고 있으며 자바 스크립트의 상속에 대한 작업에 어려움을 겪고있다. 나는이 부분이 흑색인지 백색인지 같은 기본적인 필드 나 기본 getters/setter를 가진 "Piece"추상 클래스가 있기를 원한다. 그때 나는 내가 지금처럼 인스턴스화 할 수 조각의 각 유형에 대한 클래스를 갖고 싶어 : 모든 필드와 조각의 메소드가 필요합니다JavaScript에서 클래스 확장하는 방법
var pieceOne = new Pawn();
폰을()하지만 (그 운동에 대한 자신의 방법 및 추가 필드가 이것은 대부분의 조각에 대해 중요하지 않으므로 아직 이동했는지 여부와 같음). 여기에 내 현재 조각 클래스는 다음과 같습니다
//This object specifies basic information about pieces.
"use strict";
function Piece(color, type, captured, hasMoved) {
this.color = color;
this.type = type;
this.captured = captured;
this.hasMoved = hasMoved;
this.image = color + "_" + type + ".svg";
}
Piece.prototype.getImage = function getImage(){
return this.image;
}
Piece.prototype.isCaptured = function isCaptured(){
return this.captured;
};
나는 아마도 "유형"필드를 제거하는 것 조각의 모든 종류의 서브 클래스를 만들려고하면 나도 알아,하지만 어떻게 내가 전당포 서브 클래스를 만들 수 있을까? 이 같은?
function Pawn() = new Piece(color, captured, hasMoved);
Pawn.prototype.getLegalMoves = function getLegalMoves(){
//return legal moves
}
var pieceOne = new Pawn("black", false, false);