【发布时间】:2013-08-12 04:06:31
【问题描述】:
我正在做一个国际象棋游戏。我想做一个抽象的片断类,然后可以通过pawn/knight/rook/etc进行扩展。假设我的作品类如下所示:
"use strict";
function Piece(color) {
this.color = color;
this.type = "Abstract";
}
Piece.prototype.sayName = function sayName(){
alert(this.type);
}
Piece.prototype.movePiece(oldPosition, newPosition){
};
我会这样实例化它:
var abstractPiece = new Piece("Black");
现在假设我想创建一个 Pawn 类,我想实例化如下。
var pawnOne = new Pawn("Black");
我希望 Pawn 具有相同的 sayName 函数,但我希望它具有不同的 movePiece 函数,因为 Pawn 有自己独特的移动方式。我将如何制作 Pawn,使其扩展 Piece,并覆盖 Piece 的 movePiece 函数?
【问题讨论】:
-
你能写出这样 Piece 永远不需要移动功能吗?我认为所有的棋子都有非常独特的允许移动,所以没有理由定义移动然后也超载它。
-
可能。实际上我已经让每一个部分都工作了,但是有很多共享代码,因为我不知道如何扩展抽象类。即使这是可能的,我问也是因为我想知道如何做到这一点。
-
另外,您应该考虑阅读相关内容,也许点击 javascript 标签并转到标签 wiki 并阅读其中的一些内容。
标签: javascript oop inheritance extends