почему код срабатывает лишь в третьем случае
var Army = function(units){
var group = {units:units};
group.prototype.attack = function(){
console.log("army is attack");
};
return group;
}
var a = new Army();
a.attack();
//Uncaught TypeError: Cannot set property 'attack' of undefined
// at new Army (<anonymous>:3:25)
var Army = function(units){
var group = function(){this.units=units;};
group.prototype.attack = function(){
console.log("army is attack");
};
return group;
}
var a = new Army();
a.attack();
//Uncaught TypeError: a.attack is not a function
var Army = function(units){
var group = function(){this.units=units;};
group.prototype.attack = function(){
console.log("army is attack");
};
return new group();
}
var a = new Army();
a.attack();
// army is attack
group
нет свойства prototype
, поскольку свойство prototype
- это свойство конструкторов.group
содержит конструктор, однако и возвращаете вы сам конструктор, а не объект при его помощи сконструированный. Следовательно и обращаться к методу attack
нужно как a.prototype.attack
, а не a.attack
.group
- конструктор, и возвращая new group()
вы вызываете этот конструктор, следовательно, возвращаете сконструированный им объект, который позволяет через прототип обратиться к методу attack
.Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть контейнер фиксированной шириныВ нем нужно расположить 3 элемента:
Не знаю как это игра называется на самом деле, но нужно было реализовать это: Реализовать игру 15 палокВы играете с компьютером
Народ, прошу помощиВроде простой вопрос, но ничего полезного при поиске решения не нашел