JavaScript
- 2 ответа
- 0 вопросов
1
Вклад в тег
console.log(romanInfantry.greet())
/* Caesar Infantry ready!
(index):53 undefined */
// должна выдавать строку
Caesar Infantry ready! 9:13
undefined 22:13
console.log(romanInfantry) // constructor {type: "infantry", name: "Caesar Infantry", force: 15}
// должна выдавать объект romanInfantry
let romanInfantry = Object.create(Unit).constructor('infantry','Caesar Infantry', 15,[1,5,67]);
не изменило оригинальный объект Unit.Infantry.constructor = function(type,name,force,infrantryPosibilities) { Unit.constructor.apply(this,arguments); this.infrantryPosibilities = infrantryPosibilities || []; return this;
// создаёте конструктор класса Unit
function Unit(type,name,force) {
this.type = type;
this.name = name;
this.force = force;
}
// создаёте наследуемые свойства/методы Unit
Unit.prototype = {
constructor: Unit,
greet: function() {
console.log(this.name[0].toUpperCase() + this.name.slice(1) + " ready!")
}
};
// создаёте конструктор класса Infantry
function Infantry(type,name,force,infrantryPosibilities) {
Unit.call(this,type,name,force);
this.infrantryPosibilities = infrantryPosibilities || [];
}
// наследуете Infantry класс Unit и замещаете родительское свойство constructor, на новое
Infantry.prototype = Object.create(Unit.prototype, {
constructor: {
value: Infantry,
enumerable: true,
writable: true,
configurable: true
}
});
// создаёте новый экземпляр класса Infantry, наследника Unit.
let romanInfantry = new Infantry('infantry','Caesar Infantry', 15,[1,5,67]);
romanInfantry.greet();
console.log(romanInfantry);