Этот вопрос проверяет понимание механизма наследования и поиска свойств в JavaScript.
Цепочка прототипов — это механизм, по которому JavaScript ищет свойства объекта.
Если свойство не найдено в объекте, поиск продолжается в его прототипе.
Такой поиск продолжается до конца цепочки.
Этот механизм лежит в основе наследования в JavaScript.
JavaScript использует прототипное наследование, а не классическое, как в других языках.
Цепочка прототипов — это последовательность объектов, по которой JavaScript ищет свойство или метод.
Когда выполняется обращение к свойству:
JavaScript ищет его в самом объекте
если не найдено — ищет в прототипе
процесс повторяется до конца цепочки
const user = { name: 'Alex' };
console.log(user.toString());
// метод найден в Object.prototype
[[Prototype]]Каждый объект имеет скрытое свойство:
[[Prototype]] — ссылка на другой объект
Чаще всего доступ к нему получают через Object.getPrototypeOf.
В стандартных объектах:
последним звеном является Object.prototype
дальше следует null
Цепочка прототипов:
позволяет переиспользовать методы
уменьшает дублирование кода
объясняет, откуда «берутся» методы у объектов
Цепочка прототипов — это основа наследования в JavaScript и механизм поиска свойств.