function logMsg(str, noBreak) {
var msg = $('#message');
msg.append(str);
if (!noBreak) // if noBreak is asigned a value (any value), <br /> won't be output
msg.append('<br />');
}
function inheritPrototype(subType, superType)
{
var prototype = Object(superType.prototype); //create object
prototype.constructor = subType; //augment object
subType.prototype = prototype; //assign object
}
function Chessman (type) {
this.type = type;
this.id = 'unnamed';
this.position = [];
this.isAbroad = false;
this.color = '';
}
Chessman.prototype = {
constructor: Chessman,
move: function (newPosition) {
if (newPosition) {
logMsg(this.id + ' moved to [' + newPosition + '] from [' + this.position + '].');
this.position = newPosition;
return this;
}
}
}
function Soldier (position) {
Chessman.call(this, 'Soldier')
this.position = position;
};
inheritPrototype(Soldier, Chessman);
Soldier.prototype.isValidMove = function(currentPosition, newPosition) {
return true;
}
var Soldier1 = new Soldier([0, 3]);
Soldier1.id = 'Soldier1';
Soldier1.color = 'Red';
Soldier1.move([0, 4]);
logMsg('Soldier1\'s current position is [' + Soldier1.position + '].');
var Soldier2 = new Soldier([2, 3]);
Soldier2.id = 'Soldier2';
Soldier2.color = 'Red';
Soldier2.move([2, 4]);
logMsg('Soldier2\'s current position is [' + Soldier2.position + '].');
logMsg('Soldier1\'s current position is [' + Soldier1.position + '].');
<div id="message" />
body {
font-family: Verdana, Arial;
font-size: 1.1em;
}