请帮助解决问题。我有基础'单位':
var Unit = function() {
this.x_coord = x_coord;
this.y_coord = y_coord;
this.color = color;
};
和儿童班' playerUnit':
var playerUnit = function(gameObj, x_coord, y_coord, color) {
Unit.apply(this, arguments);
};
playerUnit.prototype = Object.create(Unit.prototype);
var Game = function(options) {
new playerUnit(this,1,1,'red');
};
var app = new Game();
我计划将来做很多这些儿童课程:' enemyUnit',' tankUnit',' boatUnit'等我需要使用常见属性:x_coord,y_coord,color。
i try use Unit.apply(this, arguments);
但是在启动脚本后我在控制台中跟随错误消息:
未捕获的ReferenceError:未定义x_coord
jsfiddle:https://jsfiddle.net/vzk73qah/2/
答案 0 :(得分:1)
您应该在Unit
中定义参数:
var Unit = function(gameObj, x_coord, y_coord, color) {
// ...
};
还要考虑传递一个对象以避免在所有函数中重复这些参数。
var Unit = function(data) {
this.x_coord = data.x_coord;
this.y_coord = data.y_coord;
this.color = data.color;
};
var playerUnit = function(data) {
Unit.call(this, data);
};
new playerUnit({
gameObj: this,
x_coord: 1,
y_coord: 1,
color: 'red'
});