Цепь прототипов — это основной механизм наследования в JavaScript. Каждый объект имеет внутреннюю ссылку [[Prototype]], которая связывает его с другим объектом — его прототипом.
Когда ты обращаешься к свойству объекта, JavaScript следует этим шагам:
nullnull, а свойство так и не найдено, возвращается undefinedmyObject → MyConstructor.prototype → Object.prototype → null
Все объекты в итоге наследуют от Object.prototype, поэтому методы вроде .toString() и .hasOwnProperty() доступны везде.
[[Prototype]] доступна через Object.getPrototypeOf(obj) или устаревшее свойство __proto__Когда ты обращаешься к свойству объекта, JavaScript сначала проверяет собственные свойства объекта, а потом ищет их вверх по цепочке прототипов, и собственные свойства всегда имеют приоритет над унаследованными.
Новый — ещё не проверен сообществом
Вы