Выбор ответа Junior Прототипы и классы спрашивают часто обновлено

Как ищется свойство объекта

Вопрос

Как движок находит свойство obj.x, если в самом obj его нет?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Идёт по цепочке прототипов, пока не найдёт или не дойдёт до null. Чтение свойства идёт по цепочке [[Prototype]]: сначала собственные свойства, потом прототип, потом прототип прототипа. undefined возвращается, только если цепочка закончилась на null, а свойство так и не нашлось.

Варианты ответа

  1. Ищет его в глобальной области видимости, а потом в замыканиях
  2. Сразу возвращает undefined, не проверяя ничего другого
  3. Ищет его в функции-конструкторе, которой был создан объект
  4. Идёт по цепочке прототипов, пока не найдёт или не дойдёт до nullправильный ответ

Разбор

Чтение свойства идёт по цепочке [[Prototype]]: сначала собственные свойства, потом прототип, потом прототип прототипа. undefined возвращается, только если цепочка закончилась на null, а свойство так и не нашлось. Глобальная область относится к переменным, а не к свойствам объектов. Сам конструктор в поиске не участвует: участвует его свойство prototype, ставшее прототипом объекта.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.