Size: a a a

2021 April 21

M

Makc in pro.js
Прими как данность
источник

ЕК

Евгений К. in pro.js
это понятно. Единственный вопрос - при чем тут ClassA?
Дебаггер придуривается?
источник

M

Makc in pro.js
Не понял. Так прототипом класса В и есть А, или что?
источник

E

Etki in pro.js
Не смущает то что у ClassA нет префикса, а у ClassB стоит class?

Говорю же, __proto__ - это экземпляр A, не класс A:

> class A { [util.inspect.custom]() { return "i'm an instance"; } }
undefined
> new A();
i'm an instance
> class C extends A { constructor() { super(); console.log(this.__proto__); } }
undefined
> new C();
C {}
i'm an instance
источник

M

Makc in pro.js
Говорю ж, в сафари выводит в протопип В, то есть самого себя. Бери сафари
источник

M

Makc in pro.js
Выходит тогда так, это екземпляр
источник

AT

Anton T in pro.js
Ничего странного, хоть и малоинтуитивно поначалу. На конструктор вообще не смотрите - это просто функция и погоды никакой не делает. Еще раз, девтулз смотрит на первый proto в цепочке объекта - чей prototype он будет, того и тапки. Инстанс класса ClassB имеет свой прото - ClassB.prototype, поэтому когда вы будете выводить в консоль new ClassB(), то вам и напишет ClassB. Но у ClassB.prototype тоже есть прото - ClassA prototype. Поэтому по аналогии при выводе в консоли ClassB.prototype покажет ClassA. И так далее по цепочке.
источник

ЕК

Евгений К. in pro.js
Разве не сам this должен быть экземпляром? Я думал Super() работает именно так - возвращает экземпляр родителя, который потом "докручивается" в потомке. Видимо он возвращает что-то другое?
источник

ЕК

Евгений К. in pro.js
Сафари да, решает :D
источник

E

Etki in pro.js
мы говорим про прототип,а не this
источник

ЕК

Евгений К. in pro.js
Я уже почти окончательно запутался :D Похоже в моем понимании процессов наследования есть какая-то концептуальная ошибка. Только пока не могу понять какая.
источник

ЕК

Евгений К. in pro.js
Я похоже упустил нить дискуссии (
источник

ЕК

Евгений К. in pro.js
Резюмируя - super () возвращает объект, у которого поля заполнены конструкторами родительских классов (одним или более), и у которого [[Prototype]] ссылается на .prototype создающего его класса. А ClassA в дебаггере - это просто я не понимаю сам дебаггер (а не механизмы JS).
Все правильно?
источник

ЕК

Евгений К. in pro.js
Ну и сафари решает еще :)
источник

AT

Anton T in pro.js
Короч, просто считайте, что на том месте, где вы подчеркнули "ClassA" всегда будет выводиться то, что находится в __proto__.constructor этого объекта. Есть исключения, но потом сами разберетесь.
источник

AT

Anton T in pro.js
Если очень упрощать. Но вы пока в super() не углубляйтесь - лучше посильнее прототипное наследование поучите, так как в данном случае проблема никак не связана с super. Можете сделать похожие манипуляции вручную и с простым объектом. Поэксперементируйте, посмотрите, что будет. Там рано или поздно и разберетесь.
источник

A

Alex in pro.js
Всем привет!
Посоветуйте, плиз, как повесить на кнопку событие скачать файл .pdf
Если прописываю просто путь к файлу, файл открывается для просмотра, а не скачивается
источник

ЕК

Евгений К. in pro.js
Хорошо, всем спасибо за ответы! Думаю мне стало слегка понятней) Пойду дальше изучать этот прекрасный JS :D
источник

I

Iskandar in pro.js
источник

ЕК

Евгений К. in pro.js
К сожалению я еще не "дорос" до чтения документации :(
источник