Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Элитного кода тред (https://javascript.ru/forum/offtopic/57197-ehlitnogo-koda-tred.html)

cyber 11.08.2015 17:22

Erolast, с каких пор setPrototypeOf попал в es5?

Erolast 11.08.2015 17:24

Цитата:

Erolast, с каких пор setPrototypeOf попал в es5?
На ES5 лишь синтаксис, окружение, естественно, нужно ES6 - прокси появились только в нем.
Почему бы не оставить из ES6 только прокси? У меня чет с использованием __proto__ в FF не заработало.

javaQest 11.08.2015 17:53

Цитата:

Функции в JS - те же настоящие объекты
это не относится как-бы, к делу. ну ладно, я вникну, получше, потом отпишусь. Только я не пойму, зачем эта клоунада? Почему надо использовать функции в качестве прототипов? это как то касается особенностей реализации, или что?

KosBeg 11.08.2015 17:54

РЕБЯТА! а часто тут у вас такие срачи бывают?
и еще вопрос - если на форуме есть троль, то вы его не сразу баните, а сначала мучаете? :lol:

javaQest 11.08.2015 17:55

Erolast,
Кстати, продублирую тут. Моя претензия по поводу затирания прототипа сабкласса остается в силе. Это не годится.

Erolast 11.08.2015 17:59

Цитата:

Только я не пойму, зачем эта клоунада? Почему надо использовать функции в качестве прототипов?
Ты о девятой строке? Это наследование статичных свойств класса, которые самому конструктору устанавливаются.

Цитата:

Сообщение от javaQest (Сообщение 383685)
Erolast,
Кстати, продублирую тут. Моя претензия по поводу затирания прототипа сабкласса остается в силе. Это не годится.

Я ж уже ответил:
Цитата:

Сообщение от Erolast (Сообщение 383682)
Ты хочешь наследовать в рантайме? Окей, поправил.
Просто я ж с ES6 переписывал, а там наследование устанавливается в момент объявления класса.


javaQest 11.08.2015 18:00

Erolast,
Кстати, (это так, не принципиально конечно, просто ремарочка) у тебя там логика страдает. Твой null в качестве обязательного аргумента там как пятое колесо выглядит. Получается, если null подан, то будет попытка наследования от прототипа null, смысл тогда в нем? Ну это так, к слову.

javaQest 11.08.2015 18:02

Цитата:

Сообщение от Erolast
Ты о девятой строке?

Я вот об этой строке
if (superClass) {
        Object.setPrototypeOf(subClass, superClass);
    }


почему не
if (superClass) {
        Object.setPrototypeOf(subClass.prototype, superClass.prototype);
    }

Erolast 11.08.2015 18:02

Цитата:

если null подан, то будет попытка наследования от прототипа null
Не будет, там же проверка делается:
Object.setPrototypeOf(subClass.prototype, *!*superClass*/!* && superClass.prototype);


Нет, я бы, конечно, расписал это в иф-элс, просто код установки наследования скопирован из бабеля (в котором он минифицирован) без рефакторинга.

javaQest 11.08.2015 18:04

Цитата:

Сообщение от Erolast
Ты хочешь наследовать в рантайме? Окей, поправил.
Просто я ж с ES6 переписывал, а там наследование устанавливается в момент объявления класса.

что ты поправил? ты по прежнему перезаписываешь прототип сабкласса.


Часовой пояс GMT +3, время: 13:15.