Выбор ответа Junior Прототипы и классы спрашивают часто обновлено
__proto__ против prototype
Вопрос
Какое утверждение о __proto__ и prototype верное?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: prototype у конструктора станет прототипом экземпляров, proto это прототип объекта. F.prototype это обычное свойство функции, объект, который new F() назначит прототипом новому экземпляру. obj.proto (правильнее Object.getPrototypeOf(obj)) показывает прототип конкретного объекта.
Варианты ответа
- Это два названия одного и того же свойства: старое и новое, работают одинаково
prototypeу конструктора станет прототипом экземпляров,__proto__это прототип объектаправильный ответ__proto__есть только у функций, аprototypeу всех объектов, включая массивыprototypeхранит копию методов, которая создаётся для каждого экземпляра приnew
Разбор
F.prototype это обычное свойство функции, объект, который new F() назначит прототипом новому экземпляру. obj.__proto__ (правильнее Object.getPrototypeOf(obj)) показывает прототип конкретного объекта. Связь такая: Object.getPrototypeOf(new F()) === F.prototype. Наоборот не бывает: prototype есть у функций (кроме стрелок и методов), а прототип есть у любого объекта. Копий методов нет, прототип один на все экземпляры.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.