Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   promises. почему так запилено? (https://javascript.ru/forum/misc/57560-promises-pochemu-tak-zapileno.html)

javaQest 11.08.2015 17:33

Erolast,
с ходу возникла непонятка
subClass.prototype = Object.create(superClass && superClass.prototype,

ты почему тут перезаписываешь прототип сабклассу? если сабкласс наследует что-то у суперкласса, это не значит что он должен забыть о себе. Или я что-то не так понял?

KosBeg 11.08.2015 17:37

Erolast,
http://stackoverflow.com/questions/1...-post-with-php =>
Цитата:

Please forget my bad english.
это ты вопрос задавал? :lol:

javaQest 11.08.2015 17:45

Erolast,
и вот еще непонятка.
я глянул в описании setPrototypeOf, судя по этому вот полифилу
Object.setPrototypeOf = Object.setPrototypeOf || function(obj, proto) {
  obj.__proto__ = proto;
  return obj; 
}

в качестве аргументов там объекты(настоящие), а у тебя
if (superClass) {
        Object.setPrototypeOf(subClass, superClass);
    }

функции (а-ля "классы"). Как это понимать?

Erolast 11.08.2015 17:45

Цитата:

ты почему тут перезаписываешь прототип сабклассу?
Подразумевается, что функция inherits будет применяться сразу после объявления класса, до установки методов в прототип, пока он еще чистый - тогда ничего не перезапишется. Можно заменить на более простое
Object.setPrototypeOf(subClass.prototype, superClass && superClass.prototype);

В контексте организации множественного наследования ничего не изменится.

Erolast 11.08.2015 17:47

Цитата:

в качестве аргументов там объекты(настоящие), а у тебя
[js]
if (superClass) {
Object.setPrototypeOf(subClass, superClass);
}
[js]
функции (а-ля "классы"). Как это понимать?
Что не так? Функции (классы) в JS - те же настоящие объекты, и у них тоже есть прототип (который [[Prototype]]).
Object.setPrototypeOf - это то же, что и установка __proto__, только по стандарту ES6.

И давай лучше в той теме общаться, здесь это оффтоп как-то.

javaQest 11.08.2015 17:48

Цитата:

Сообщение от Erolast
В контексте организации множественного наследования ничего не изменится.

Нет, так не годится. Допустим, у меня есть класс, который уже содержит в своем прототипе foo. я наследую, и теряю это foo, при таком раскладе. Это детский сад

Erolast 11.08.2015 17:49

Цитата:

Сообщение от KosBeg (Сообщение 383671)
Erolast,
http://stackoverflow.com/questions/1...-post-with-php =>
это ты вопрос задавал? :lol:

С чего ты взял?

javaQest 11.08.2015 17:49

Erolast,
хорошо, ответ на этот пост читай в той теме

KosBeg 11.08.2015 17:50

Цитата:

Сообщение от Erolast
С чего ты взял?

не понимаешь ты шуток)
надо "receive", а у тебя "recieve", может опечатка

Erolast 11.08.2015 17:50

Цитата:

Сообщение от javaQest (Сообщение 383678)
Нет, так не годится. Допустим, у меня есть класс, который уже содержит в своем прототипе foo. я наследую, и теряю это foo, при таком раскладе. Это детский сад

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


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