11.08.2015, 19:00
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Erolast,
И кстати, че т я подумал, а какого хрена, ты вообще перезаписываешь прототип прототипа? Не факт, что там чего то не было до этого. Деструкция при множественном наследовании должна делаться явно. . Так что, не годен твой вариант.
Последний раз редактировалось javaQest, 11.08.2015 в 19:03.
|
|
12.08.2015, 07:48
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
Я, честно говоря и не знал, что null&&sоmething возвращает null, не логично это, сука
|
Такова особенность операторов || и && в JS: они возвращают не булево, а тот из операндов, который может быть приведен к требуемому булевому.
Цитата:
|
cтатические" св-ва нахер не упали
|
Поддержка статических свойств нужна для совместимости с классами ES6. Для себя ты можешь убрать этот код, но в моем примере он останется (он не только для тебя, все же).
Цитата:
|
Да, и вот еще что. Ты все равно не прав, со своим нулем. Если ты подаешь нуль, в качестве второго аргумента, у тебя прототип прототипа субкласса перезаписывается нулем. Это непредсказуемое, и неадекватное поведение.
|
Установка прототипа в null - это вполне себе классический, общеизвестный и даже прописанный в стандарте ( http://www.ecma-international.org/ec...tionevaluation, пункт 6e) прием, использующийся для того, чтобы очистить объект от дефолтных методов, наследуемых из Object.prototype. А ты что, не знал?
Опять же, чисто для себя ты можешь наследование от null вырезать, но из примера я его убирать не буду.
Цитата:
|
И кстати, че т я подумал, а какого хрена, ты вообще перезаписываешь прототип прототипа? Не факт, что там чего то не было до этого. Деструкция при множественном наследовании должна делаться явно.
|
Чо? Прототип прототипа - это родитель. Функция inherits устанавливает (== меняет) родителя. Если у тебя класс уже наследовал от чего-то и ты решил функцией inherits назначить нового родителя, то перезапись его вполне логична.
И да, то, что в прототипе прототипа уже что-то было до этого - это факт. По умолчанию родителем любого класса является Object (Object.getPrototypeOf(Function.prototype) == Object.prototype).
Последний раз редактировалось Erolast, 12.08.2015 в 07:51.
|
|
12.08.2015, 09:35
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Сообщение от Erolast
|
Чо? Прототип прототипа - это родитель. Функция inherits устанавливает (== меняет) родителя. Если у тебя класс уже наследовал от чего-то и ты решил функцией inherits назначить нового родителя, то перезапись его вполне логична.
И да, то, что в прототипе прототипа уже что-то было до этого - это факт. По умолчанию родителем любого класса является Object (Object.getPrototypeOf(Function.prototype) == Object.prototype).
|
объясняю популярно. У меня цепочка A->B->C->D->E, я захотел чтобы, E унаследовал от Z, сделав это, я потеряю, A->B->C, это разве не смешно? Мало того, ты неявно изменишь родителя D, и все классы и объекты, наследующие от D изменят свое поведение. Ты сам то веришь в бред, который ты несешь? Это очевидно даже школьнику. Зачем ты позоришься? Ну обосрался, признай ошибку, делов то.
Сообщение от Erolast
|
устанавливает (== меняет
|
устанавливать != менять
//fixed
ты должен дополнять в данном случае, ничего существующего не трогая и не ломая.
Остальные твои перделки меня не интересуют, есть они или нет, мне похеру, они роли не играют. Просто сделай мне то, на что ты подписался. Реализуй множественное наследование.
Последний раз редактировалось javaQest, 12.08.2015 в 09:58.
|
|
12.08.2015, 09:40
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Сообщение от Erolast
|
Установка прототипа в null - это вполне себе классический, общеизвестный и даже прописанный в стандарте (http://www.ecma-international.org/ec...tionevaluation, пункт 6e) прием, использующийся для того, чтобы очистить объект от дефолтных методов, наследуемых из Object.prototype. А ты что, не знал?
|
Я тебе не про установку прототипа в нуль говорю, а про то, что ты под ковром, не совсем очевидным для пользователя образом, это делаешь, непонятно зачем. В контексте данной задачи это выглядит нелепостью. Это не нужно. Но можешь оставить, это принципиально ничего не меняет, только усложняет твою реализацию.
Последний раз редактировалось javaQest, 12.08.2015 в 09:56.
|
|
12.08.2015, 09:45
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Сообщение от Erolast
|
И да, то, что в прототипе прототипа уже что-то было до этого - это факт
|
Естественно, я имел в виду что-то отличное от Object. Не надо тут строить непонимающие глазки. Ты может и глуп, но не настолько чтобы этого не понимать.
|
|
12.08.2015, 11:12
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
ты неявно изменишь родителя D, и все классы и объекты, наследующие от D изменят свое поведение.
|
С какой стати?
Цитата:
|
ты должен дополнять в данном случае, ничего существующего не трогая и не ломая.
|
Нет. Если функция называется inherits - значит, она должна перезаписывать. Чтобы добавлять родителя, надо, чтобы функция называлась addParent.
Энивей, это не имеет никакого отношения к реализации множественного наследования. Такое ощущение, что ты понял, что проигрываешь, и просто пытаешься увести разговор в сторону.
Цитата:
|
Реализуй множественное наследование.
|
Оно уже реализовано.
|
|
12.08.2015, 11:49
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Сообщение от Erolast
|
С какой стати?
|
по определению. потому что ты перезаписал прототип.
Сообщение от Erolast
|
Оно уже реализовано.
|
почитай где-нибудь в умных книжках, что такое множественное наследование, посмотри различные реализации в других языках, а потом мы вернемся к этому разговору. Удачи.
|
|
12.08.2015, 11:58
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Erolast,
Кстати, че то обезьяны не видно. ИМХО, это не справедливо, что ты один отдуваешься, это же фактически, его позор а не твой, ты хоть что-то попытался напейсать, а от него мы тут ни строки внятного кода не видали. Как только запахло жареным, он прижух, хотя веселые картиночки выкладывает.
|
|
12.08.2015, 12:00
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Erolast,
Он наверное сидит, и проклинает тебя, за то что ты свою обфучкацию расшифровал, и народ узрел истину
|
|
12.08.2015, 12:05
|
Профессор
|
|
Регистрация: 07.08.2015
Сообщений: 154
|
|
Сообщение от Erolast
|
Если функция называется inherits - значит, она должна перезаписывать. Чтобы добавлять родителя, надо, чтобы функция называлась addParent.
|
LOL, значит все дело в названии? Ну назови addParent, я разрешаю.
|
|
|
|