Всем доброго утра! Продолжаю разбирать код который генерирует babel. Приведу пример...
class Animal{ }
class Rabbit extends Animal{}
Такой код после транспилирования сгенеририрует функцию _inherits, в которой
будут присутствовать инструкции:
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
Не могу понять зачем в последней инструкции устанавливается subClass.__proto__ в superClass, если при создании объекта туда будет установлен subClass.prototype?
Оказалось, что первая инструкция копирует только свойства прототипа(что логично и понятно мне). Но мне и в голову не приходило что с помощью второй инструкции можно скопировать статические свойства одного объекта в другой. Кому интересно, ответ здесь: https://stackoverflow.com/questions/52793807/function-inherits-babel-after-transpiling
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости