Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 11.08.2009, 14:27
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Классическое наследование в JavaScript невозможно, а эмуляция его вредна.

Сообщение от zzz
И всё таки мне интересно как работает этот код моно коменты к нему?
А что непонятно-то?
Ответить с цитированием
  #32 (permalink)  
Старый 11.08.2009, 14:29
zzz zzz вне форума
Аспирант
Отправить личное сообщение для zzz Посмотреть профиль Найти все сообщения от zzz
 
Регистрация: 06.08.2009
Сообщений: 91

Непонятно как код вообще работает. Если вам понятно то раскажите пожалуйста
Ответить с цитированием
  #33 (permalink)  
Старый 11.08.2009, 14:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Мне непонятно, что вам непонятно, и, соответственно, непонятно, что рассказывать. Если вам непонятно все, то и спрашивайте это все по пунктам.
Ответить с цитированием
  #34 (permalink)  
Старый 11.08.2009, 15:00
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Необычность в следующем:
У всех классов, что от кого-то наследуют, создается метод uber, который запомнил замыканием ссылку на родителя и его экземпляр. При вызове он получает имя, по которому ищет в запомненном экземпляре нужный метод и вызывает его, передавая все параметры кроме имени.
Нужно это на тот случай если и родительский и дочерний класс будут содержать метод с одинаковым именем, т. е. метод дочернего класса экранирует одноименный метод в родительском классе, а значит вызвать экранированный метод из родителя через this.method() не получится и тут как раз пригодится uber.

В остальном стандартная, криворукая(нынче) реализация наследования, что применялась еще в 90-х. Ее минусы неплохо расписаны в статье, ссылка на которую ниже.


Сообщение от Kolyaj
Сообщение от Riim
сразу пришел в ужас от: var proto = this.parent = new parent();
Либо это что-то очень гениальное, либо книгу пора выкидывать.
А что тут не так?
При наследовании вызывается конструктор родителя. Такого не должно происходить, по крайней мере ни в одном другом языке я такого наследования не видел. Что такое хорошо и что такое плохо, внятно объясняется в этой статье: Решение проблемы холостого вызова функции-конструктора надкласса

zzz, это четвертая часть, точно не помню, но вроде в первых трех есть про call и apply

upd: книгу лучше сжечь.

Последний раз редактировалось Riim, 11.08.2009 в 15:06.
Ответить с цитированием
  #35 (permalink)  
Старый 11.08.2009, 15:06
zzz zzz вне форума
Аспирант
Отправить личное сообщение для zzz Посмотреть профиль Найти все сообщения от zzz
 
Регистрация: 06.08.2009
Сообщений: 91

Сообщение от Kolyaj Посмотреть сообщение
Мне непонятно, что вам непонятно, и, соответственно, непонятно, что рассказывать. Если вам непонятно все, то и спрашивайте это все по пунктам.
Непонятно какой кусок кода что делает. Вот я и прошу поставить комменты.
Ответить с цитированием
  #36 (permalink)  
Старый 11.08.2009, 15:09
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Riim
При наследовании вызывается конструктор родителя.
А, ну это да.
Ответить с цитированием
  #37 (permalink)  
Старый 11.08.2009, 15:10
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

zzz,
если вам лень задать конкретные вопросы, всем остальным тем более лень комментировать код.
Ответить с цитированием
  #38 (permalink)  
Старый 11.08.2009, 15:12
zzz zzz вне форума
Аспирант
Отправить личное сообщение для zzz Посмотреть профиль Найти все сообщения от zzz
 
Регистрация: 06.08.2009
Сообщений: 91

Что значит конкретные вопросы мне что перепесать каждуб строку кода или каждое слова кода и везде поставить вопрос А что это делает??? Повторяю я понимаю что этот код должен сделать но я не понимаю как он это делает.
Ответить с цитированием
  #39 (permalink)  
Старый 11.08.2009, 15:13
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от zzz
я понимаю что этот код должен сделать но я не понимаю как он это делает.
zzz, ты же сам написал, что знаешь основы.
Ответить с цитированием
  #40 (permalink)  
Старый 11.08.2009, 15:16
zzz zzz вне форума
Аспирант
Отправить личное сообщение для zzz Посмотреть профиль Найти все сообщения от zzz
 
Регистрация: 06.08.2009
Сообщений: 91

Уффф... как же обьяснить я понимаю все эти операторты, функции, обьекты но я не понимаю как всё это вместе выдаёт такой результат. Это всё равно что знать цифры и буквы но не понимаать как решается ленейное уровнение
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лучшая книга по JavaScript Systemnik Оффтопик 27 26.08.2012 16:54
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Собрался силами, собираюсь освоить Javascript walker Общие вопросы Javascript 14 20.03.2012 16:17
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43