> Чем собственные свойства отличаются от унаследованных в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: EvApps
Стек: JavaScript
> Пример ответа
Собственные свойства (own properties) - это свойства, которые принадлежат непосредственно объекту и добавляются через конструктор, литерал объекта или метод Object.defineProperty. Унаследованные свойства (inherited properties) берутся из цепочки прототипов (prototype chain) и доступны объекту через наследование от родительского класса или прототипа.
Ключевые отличия:
-
Принадлежность: Собственные свойства хранятся в самом объекте (проверяются через
hasOwnProperty), а унаследованные - в прототипе. -
Перебор: Цикл
for...inперечисляет и собственные, и унаследованные свойства (кроме встроенных, если они не переопределены). МетодObject.keys()возвращает только собственные. -
Изменение: Унаследованные свойства можно переопределить, создав собственное свойство с тем же именем, но это не влияет на прототип.
Пример:
JAVASCRIPTfunction Animal(name) {this.name = name; // собственное свойство}Animal.prototype.speak = function() { // унаследованное свойство (метод)console.log(`${this.name} издает звук`);};const dog = new Animal('Бобик');dog.color = 'черный'; // собственное свойствоconsole.log(dog.hasOwnProperty('name')); // trueconsole.log(dog.hasOwnProperty('speak')); // falseconsole.log(dog.hasOwnProperty('color')); // true
Практическое применение: Для безопасной проверки наличия свойства у самого объекта (без учета прототипа) используйте Object.hasOwn(obj, prop) (современный стандарт) или obj.hasOwnProperty(prop).
> Похожие задачи по frontend
Для чего нужен оператор nullish coalescing (??) и как он работает в JavaScript
Пример замыкания с внутренней функцией и предмет замыкания в JavaScript
Какие способы есть для итерации по объекту в JavaScript кроме for-in
Почему parseInt в JavaScript может возвращать NaN и как влияет второй аргумент
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью