Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2013, 12:35
Аспирант
Отправить личное сообщение для xfreewindx Посмотреть профиль Найти все сообщения от xfreewindx
 
Регистрация: 19.08.2012
Сообщений: 33

Вопросы про наследование
Здравствуйте!

Поясните пожалуйста по prototype
Есть код:
//Shape - superclass
function Shape() {
  this.x = 0;
  this.y = 0;
}
 
Shape.prototype.move = function(x, y) {
    this.x += x;
    this.y += y;
    console.info("Shape moved.");
};
 
// Rectangle - subclass
function Rectangle() {
  Shape.call(this); //call super constructor.
}
 
Rectangle.prototype = Object.create(Shape.prototype);
 
var rect = new Rectangle();
 
rect instanceof Rectangle //true.
rect instanceof Shape //true.
 
rect.move(); //Outputs, "Shape moved."


1. Для каких целей мы запихиваем move в prototype? Shape.prototype.move. У нас вроде new Shape нигде нет, что это нам даст? Если бы было new Shape, тогда у прототипа Shape был бы метод move, насколько я понял. И этот прототип видимо был бы безымянный объект, верно?

2. Не понимаю как работает Object.create в этой строке
Rectangle.prototype = Object.create(Shape.prototype);

Я понимаю, что в итоге Rectangle.prototype присваивается метод move из Shape.prototype. Но не совсем понимаю как. В учебнике написано, что Object.create создает пустой объект. Как у нас наследование тогда происходит? Rectangle<-пустой объект<-Shape. Можете попонятнее объяснить? И почему не написать
Rectangle.prototype = Object.create(Shape);
вместо
Rectangle.prototype = Object.create(Shape.prototype); ???

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2013, 12:39
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про наследование noname1990 Общие вопросы Javascript 4 28.06.2012 01:31
наследование в javascript mat5978 Общие вопросы Javascript 18 23.11.2011 16:17
Как можно что-нибудь узнать про интерфейс чужого объекта GRIG Internet Explorer 0 09.03.2011 17:16
Вопросы про flex mycoding Оффтопик 3 25.06.2010 12:29
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50