
11.08.2015, 17:22
|
 |
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
|
Erolast, с каких пор setPrototypeOf попал в es5?
__________________
|
Цитата:
|
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|

11.08.2015, 17:24
|
 |
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
|
Цитата:
|
|
Erolast, с каких пор setPrototypeOf попал в es5?
|
На ES5 лишь синтаксис, окружение, естественно, нужно ES6 - прокси появились только в нем.
Почему бы не оставить из ES6 только прокси? У меня чет с использованием __proto__ в FF не заработало.
|
|

11.08.2015, 17:53
|
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
|
Цитата:
|
|
Функции в JS - те же настоящие объекты
|
это не относится как-бы, к делу. ну ладно, я вникну, получше, потом отпишусь. Только я не пойму, зачем эта клоунада? Почему надо использовать функции в качестве прототипов? это как то касается особенностей реализации, или что?
|
|

11.08.2015, 17:54
|
 |
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
РЕБЯТА! а часто тут у вас такие срачи бывают?
и еще вопрос - если на форуме есть троль, то вы его не сразу баните, а сначала мучаете? 
|
|

11.08.2015, 17:55
|
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
|
Erolast,
Кстати, продублирую тут. Моя претензия по поводу затирания прототипа сабкласса остается в силе. Это не годится.
|
|

11.08.2015, 17:59
|
 |
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
|
Цитата:
|
|
Только я не пойму, зачем эта клоунада? Почему надо использовать функции в качестве прототипов?
|
Ты о девятой строке? Это наследование статичных свойств класса, которые самому конструктору устанавливаются.
Сообщение от javaQest
|
Erolast,
Кстати, продублирую тут. Моя претензия по поводу затирания прототипа сабкласса остается в силе. Это не годится.
|
Я ж уже ответил:
Сообщение от Erolast
|
Ты хочешь наследовать в рантайме? Окей, поправил.
Просто я ж с ES6 переписывал, а там наследование устанавливается в момент объявления класса.
|
|
|

11.08.2015, 18:00
|
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
|
Erolast,
Кстати, (это так, не принципиально конечно, просто ремарочка) у тебя там логика страдает. Твой null в качестве обязательного аргумента там как пятое колесо выглядит. Получается, если null подан, то будет попытка наследования от прототипа null, смысл тогда в нем? Ну это так, к слову.
|
|

11.08.2015, 18:02
|
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
|
Сообщение от Erolast
|
|
Ты о девятой строке?
|
Я вот об этой строке
if (superClass) {
Object.setPrototypeOf(subClass, superClass);
}
почему не
if (superClass) {
Object.setPrototypeOf(subClass.prototype, superClass.prototype);
}
|
|

11.08.2015, 18:02
|
 |
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
|
Цитата:
|
|
если null подан, то будет попытка наследования от прототипа null
|
Не будет, там же проверка делается:
Object.setPrototypeOf(subClass.prototype, *!*superClass*/!* && superClass.prototype);
Нет, я бы, конечно, расписал это в иф-элс, просто код установки наследования скопирован из бабеля (в котором он минифицирован) без рефакторинга.
|
|

11.08.2015, 18:04
|
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
|
Сообщение от Erolast
|
Ты хочешь наследовать в рантайме? Окей, поправил.
Просто я ж с ES6 переписывал, а там наследование устанавливается в момент объявления класса.
|
что ты поправил? ты по прежнему перезаписываешь прототип сабкласса.
|
|
|
|