Выбор ответа Junior Прототипы и классы спрашивают часто обновлено
Как ищется свойство объекта
Вопрос
Как движок находит свойство obj.x, если в самом obj его нет?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Идёт по цепочке прототипов, пока не найдёт или не дойдёт до null. Чтение свойства идёт по цепочке [[Prototype]]: сначала собственные свойства, потом прототип, потом прототип прототипа. undefined возвращается, только если цепочка закончилась на null, а свойство так и не нашлось.
Варианты ответа
- Ищет его в глобальной области видимости, а потом в замыканиях
- Сразу возвращает
undefined, не проверяя ничего другого - Ищет его в функции-конструкторе, которой был создан объект
- Идёт по цепочке прототипов, пока не найдёт или не дойдёт до
nullправильный ответ
Разбор
Чтение свойства идёт по цепочке [[Prototype]]: сначала собственные свойства, потом прототип, потом прототип прототипа. undefined возвращается, только если цепочка закончилась на null, а свойство так и не нашлось. Глобальная область относится к переменным, а не к свойствам объектов. Сам конструктор в поиске не участвует: участвует его свойство prototype, ставшее прототипом объекта.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.