@zlodiak

Как унаследовать от более общего класса?

У меня есть объект player и несколько объектов enemy. player создаётся из конструктора PlayerShip, enemy создаётся из конструктора EnemyShip.

У этих конструкторов есть одинаковые свойства и уникальные свойства. Я хотел бы чтобы одинаковые свойства наследовались из более общего конструктора Ship():
var player,
    enemies = [],
    enemiesCntInit = 10;

function Ship() {
};

function PlayerShip(x, y) {
  this.xCoord = x;
  this.yCoord = y;
  this.petrol = 100;
};  

function EnemyShip(x, y) {  
  this.xCoord = x;
  this.yCoord = y;
  this.color = 'red';
}; 

player = new PlayerShip(100, 100); 

for(var i = 0; i < enemiesCntInit; i++) {
  enemies.push(new EnemyShip(0, 0));
}

console.log(player);
console.log(enemies);


Помогите пожалуйста это сделать. JSFIDDLE есть.

Это упрощённая модель, в реальной задачи свойств у этих конструкторов намного больше.
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Пусть родительский конструктор принимает значения общих свойств и устанавливает их:

function Ship(x, y) {
  this.x = x;
  this.y = y;
}

Вызывайте его в дочерних конструкторах, указывая в качестве контекста текущий экземпляр:

function PlayerShip(x, y) {
  Ship.call(this, x, y);
  this.petrol = 100;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект