Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: hasownproperty, объекты, прототипы

Как проверить, существует ли определенное свойство в объекте или его прототипе?

Этот вопрос помогает выявить знание о том, как проверить наличие свойства в объекте или его цепочке прототипов, а также различия между проверками внутри самого объекта и по всей цепочке прототипов.

Короткий ответ

Чтобы проверить, есть ли у объекта определенное свойство, можно использовать оператор in, который проверяет как сам объект, так и его прототипы. Если нужно проверить только наличие свойства непосредственно в объекте (без учета прототипов), используется метод hasOwnProperty().

Длинный ответ

В JavaScript есть несколько способов проверить наличие свойства в объекте. Оператор in проверяет как свойства объекта, так и свойства, которые могут быть унаследованы от его прототипов.

Пример:

const animal = { canMove: true }; 
const dog = Object.create(animal); 

dog.barks = true; 

console.log('barks' in dog); // true 
console.log('canMove' in dog); // true (унаследовано от animal)

Если же нужно проверить, принадлежит ли свойство именно самому объекту, без учета его прототипов, можно использовать метод hasOwnProperty():

console.log(dog.hasOwnProperty('barks')); // true 
console.log(dog.hasOwnProperty('canMove')); // false

Этот метод проверяет только свойства, непосредственно принадлежащие объекту. Он полезен, если вы хотите отделить свойства объекта от свойств, унаследованных через прототипы.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#hasownproperty

#объекты

#прототипы

Подпишись на React Developer в телеграм