Object.hasOwnProperty() - повертає логічне значення, яке вказує, чи містить об'єкт вказану властивість.
obj.hasOwnProperty( prop)
prop - рядок з назвою властивість, метод які необхідно перевірити.
hasOwnProperty() метод об'єкту який перевіряє чи містить об'єкт вказану властивість. Кожен об'єкт, який створений від Object, успадковує метод hasOwnProperty(). Цей метод може використовуватися для визначення того, чи містить об'єкт вказану властивість як власна властивісті об'єкта; на відміну від оператора in, цей метод не перевіряє існування властивостей в ланцюжку прототипів об'єкта.
var b={k:4};
alert(b.hasOwnProperty("k")); //true
delete b.k;
alert(b.hasOwnProperty("k")); //false
Перевірка власних і успадкованих властивостей:
var o = new Object();
o.prop = 'текст';
o.hasOwnProperty('prop'); // поверне true
o.hasOwnProperty('toString'); // поверне false
o.hasOwnProperty('hasOwnProperty'); // поверне false
JavaScript не захищає ім'я властивості "hasOwnProperty", тобто можна створити власний метод, властивість з назвою "hasOwnProperty", тому для отримання правильного результату потрібно використовувати метод Object.hasOwn():
var foo = {
hasOwnProperty: function() {
return false;
},
bar: 231
};
console.log( foo.hasOwnProperty('bar') ); //завжди повертає false
console.log( Object.hasOwn(foo, 'bar') ); //true