> Как работает прототипное наследование в JavaScript? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, циан, Soft_Media_Group, Kodix, Aston, IT-One, Rutube, Globaldrive, SmartWay, Яндекс
Стек: JavaScript
> Пример ответа
Прототипное наследование - это механизм, при котором объекты могут наследовать свойства и методы от других объектов. В JavaScript каждый объект имеет внутреннюю ссылку [[Prototype]] (доступную через __proto__ или Object.getPrototypeOf()), которая указывает на объект-прототип. При обращении к свойству объекта, если оно не найдено в самом объекте, поиск продолжается по цепочке прототипов до тех пор, пока свойство не будет найдено или цепочка не закончится (на null).
Например, при создании объекта через литерал {} его прототипом является Object.prototype. Функции-конструкторы (до ES6) задавали прототип через свойство prototype: new Func() создаёт объект, чей [[Prototype]] - это Func.prototype. В ES6 появился синтаксис class, который является синтаксическим сахаром над прототипным наследованием: методы класса записываются в ClassName.prototype, а наследование через extends настраивает цепочку прототипов.
Ключевые особенности: наследование динамическое - изменения в прототипе видны всем объектам, наследующим от него; можно создавать объекты без классов с помощью Object.create(proto), что даёт полный контроль над прототипом.
> Похожие задачи по frontend
Что такое поверхностное и глубокое копирование объектов в JavaScript
Использовали ли кастомные парсеры для преобразования JSON в объекты на уровне бизнес-логики
Что такое Promise в JavaScript и как он работает?
Что происходит при сложении двух пустых массивов в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью