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
Перевірка власних і успадкованих властивостей:
o = new Object();
o.prop = 'текст';
o.hasOwnProperty('prop'); // поверне true
o.hasOwnProperty('toString'); // поверне false
o.hasOwnProperty('hasOwnProperty'); // поверне false
JavaScript не захищає ім'я властивості hasOwnProperty; таким чином, цілком може існувати об'єкт з такою властивістю (або написати свій варіант методу для об'єкту), тому для отримання правильного результату потрібно використовувати зовнішній метод hasOwnProperty:
var foo = {
hasOwnProperty: function() {
return false;
},
bar: 231
};
foo.hasOwnProperty('bar'); //завжди повертає false