Показать сообщение отдельно
  #27 (permalink)  
Старый 29.11.2014, 08:16
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Сообщение от nerv_ Посмотреть сообщение
Erolast, krutoy,
1. мне надо вызвать конструктор родительского класса - как?
2. мне надо вызвать супер метод - как?
Есть три варианта:
  1. В функции extend устанавливать ребенку в свойство ссылку на родителя.
    function extend(Child, Parent) {
      ...
      Child.Parent = Parent;
    }
    
  2. Добираться до родительского класса через .prototype.__proto__ ребенка или __proto__.__proto__ инстанса ребенка. Можно оформить в функцию:
    function getParent(Class) {
      return Class.prototype.__proto__;
    }
    
  3. Не париться и использовать ES6, в котором внутри методов класса доступно ключевое слово super, ссылающееся на родительский класс. Лучший вариант, если хочется нормального ООП.
Ответить с цитированием