Показать сообщение отдельно
  #2 (permalink)  
Старый 05.08.2014, 20:23
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Цитата:
Написать класс Cat, который наследуется от класcа Animal.
Чтобы написать "класс", нужно прежде всего написать конструктор, т.е. функцию, которая создает объект. У тебя ее нет.
Тебе надо хотя бы что-то типа этого:

function Cat(name) {
    // Тут надо инициализировать объект
}

Cat.prototype = Object.create(Animal.prototype);
// На худой конец — Cat.__proto__ = Animal.__proto__;


У тебя же это:

/*
1. Вызываем функцию cat (которой не существует)
2. Результат кладем в переменную cat.
3. При попытке вызова п. 1 js ищет ф-цию cat, но находит неинициализированную перменную cat.    
*/
var cat = new cat('Garfield'); 

/*
Никто так не делает, потому что этот способ устарел и не везде работает.
Но если используешь наследование через __proto__, то пиши его правильно (с двумя подчеркиваниями в начале и конце).
*/
cat._proto_ = animal;

/*
В принципе, это будет работать. Но лучше cat.__proto__.meow
*/
cat.meow = function() {
	return "Cat" + this.name + "is saying meow";
};


Цитата:
руководствуясь статьей учебника написал код, который не работает
Статьей про prototype? Отдохни. Погуляй. Попей чаю. Перечитай.

Последний раз редактировалось ixth, 05.08.2014 в 20:25.
Ответить с цитированием