Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
В JavaScript у нас есть два основных способа проверить, есть ли у объекта определённое свойство:
in — оператор, проверяющий всё (включая унаследованные свойства)..hasOwnProperty() — метод объекта, проверяющий только собственные свойства.| Характеристика | in | .hasOwnProperty() |
|---|---|---|
| Проверяет включая прототип | Да | Нет, только собственные |
| Проверяет только собственные свойства | Нет | Да |
| Может использоваться с прототипами | Да | Да |
Может вызвать ошибку на undefined объекте | Да (если не проверили объект) | Можно вызвать только у объекта |
const obj = { name: "John" };
console.log("name" in obj); // true
console.log("toString" in obj); // true (унаследовано от Object.prototype)
console.log(obj.hasOwnProperty("name")); // true
console.log(obj.hasOwnProperty("toString")); // false (унаследовано)
Вывод:
hasOwnProperty() для точной проверки собственных свойств.in, если нужно проверить всё, включая унаследованное.