Показать сообщение отдельно
  #102 (permalink)  
Старый 12.08.2015, 07:48
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 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.
Ответить с цитированием