Метод hasOwnProperty - проверяет, принадлежит ли указанное свойство самому объекту или нет.
Перед прочтенем статьи рекомендуется ознакомиться с new, __proto__, prototype.
См. также Object.create, constructor.
Синтаксис
объект.hasOwnProperty('свойство');
Пример
При создании объектов, у них уже есть некоторые свойства (например, toString). Но на самом деле это свойства объекта Object, от которого наследуют объекты. С помощью hasOwnProperty можно узнать действительно ли свойство принадлежит объекту:
var user = {
value: 10,
}
alert(user.hasOwnProperty('value')); //true;
alert(user.hasOwnProperty('toString')); //false;
Пример
Цикл for..in перебирает все методы и свойства объекта, даже если они находятся не в самом объекте а в прототипе:
var user = {
sayHi: function(){},
}
var andrey = {
name: 'Андрей',
__proto__: user,
}
for (var key in andrey) {
document.write(key + ' ');
}
Результат выполнения кода:
Пример
Но с помощью hasOwnProperty можно перебирать только те свойства, которые находятся в самом объекте:
var user = {
sayHi: function(){},
}
var andrey = {
name: 'Андрей',
__proto__: user,
}
for (var key in andrey) {
if (andrey.hasOwnProperty(key)) {
document.write(key + ' ');
}
}
Результат выполнения кода: