Тест на знание ООП хелп !
Наткнулся на задание. Не пойму, в чем ошибка.
// Класс 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, время: 02:02. |