Тест на знание ООП хелп !
Наткнулся на задание. Не пойму, в чем ошибка.
// Класс Animal имеет метод getName (name можно передать в конструктор). /*1 // Написать класс Cow, который наследуется от класcа Animal. /*2 // Класс Cow имеет метод moo (возвращает строку «Cow {cowname} says moo». /*3 var Animals = Object.create; // Создать класс Анимал Animals.getName = function (name) { // Метод гетнейм return this.name }; var Cow. = new Animals(cowname) ; // Наследуеться Cow.moo= function(cowname) { return console.log( this + "Cow {cowname} says moo."); } // Проверка, которая должна работать. var cow = new Cow ('Milka'); //cow.getName () === 'Milka'; // true cow.moo () === 'Cow Milka says moo'; // true |
Цитата:
var Animal={
create: function(name){var o=Object.create(this); if(name) o.name=name; return o}
}
Cow=Animal.create("Cow")
Cow.moo=function(){
console.log(this.__proto__.name+" "+this.name+" says moo")
}
cow=Cow.create("Milka")
cow.moo()
// ::: Cow Milka says moo
|
Ivasoft,
Цитата:
Цитата:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function Animal(name) {
this._name = name;
var self = this
this.getName = function() {
return self._name;
}
};
function Cow(name) {
Animal.apply(this, arguments);
this.moo = function() {
return "Cow " + this.getName() + " says moo"
}
};
var cow = new Cow('Milka');
document.writeln('<pre>', cow.getName(), ' => ', cow.getName() === 'Milka');
document.writeln(cow.moo(), ' => ', cow.moo() === 'Cow Milka says moo', '</pre>');
</script>
</body>
</html>
|
JsConAp,
в твоем коде будет cow instanceof Animal // false должно быть true |
nerv_,
ну ок
function Animal(name) {
this._name = name;
}
Animal.prototype.getName = function () {
return this._name;
};
function Cow(name) {
Animal.apply(this, arguments);
this.moo = function () {
return "Cow " + this.getName() + " says moo";
};
}
Cow.prototype = Object.create(Animal.prototype);
Cow.prototype.constructor = Cow;
var cow = new Cow("Milka");
alert(cow instanceof Animal);
|
JsConAp, осталось вынести метод moo в прототип.
|
| Часовой пояс GMT +3, время: 14:10. |