Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.04.2015, 04:21
Новичок на форуме
Отправить личное сообщение для Ivasoft Посмотреть профиль Найти все сообщения от Ivasoft
 
Регистрация: 16.04.2015
Сообщений: 1

Тест на знание ООП хелп !
Наткнулся на задание. Не пойму, в чем ошибка.

// Класс 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
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2015, 06:41
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от theKingOfJava
 
Регистрация: 31.03.2015
Сообщений: 113

Сообщение от Ivasoft
Класс Animal имеет метод getName (name можно передать в конструктор)
он тебе тут нахер не сдался.
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
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2015, 11:05
Аватар для JsConAp
Интересующийся
Отправить личное сообщение для JsConAp Посмотреть профиль Найти все сообщения от JsConAp
 
Регистрация: 22.02.2015
Сообщений: 24

Ivasoft,
Сообщение от Ivasoft
Наткнулся на задание. Не пойму, в чем ошибка.
ничего не замечаешь странного?
Сообщение от Ivasoft
var Cow. = new Animals(cowname) ; // Наследуеться
<!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, 17.04.2015 в 11:30.
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2015, 13:40
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

JsConAp,
в твоем коде будет
cow instanceof Animal // false

должно быть true
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 17.04.2015, 14:22
Аватар для JsConAp
Интересующийся
Отправить личное сообщение для JsConAp Посмотреть профиль Найти все сообщения от JsConAp
 
Регистрация: 22.02.2015
Сообщений: 24

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, 20.04.2015 в 10:35.
Ответить с цитированием
  #6 (permalink)  
Старый 17.04.2015, 14:49
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

JsConAp, осталось вынести метод moo в прототип.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
узнай свои софт-скилы (тест!) dmitryus Оффтопик 5 26.06.2013 12:15
Книжко по ООП krasovsky Учебные материалы 2 03.04.2013 12:50
Создать тест с вариантами ответов Anya Общие вопросы Javascript 9 16.12.2011 14:06
Тест с ветвлением Reiter Общие вопросы Javascript 11 08.12.2010 14:50
Тест на знание ЯваСкрипта Slawaq Оффтопик 0 19.05.2010 23:30