Summary
Returns a boolean indicating whether the object has the specified property.
Method of Object |
|
|---|---|
| Implemented in | JavaScript ? |
| ECMAScript Edition | ECMAScript 3rd Edition |
Syntax
obj.hasOwnProperty(prop)
Parameters
-
prop - The name of the property to test.
Description
Every object descended from Object inherits the hasOwnProperty method. This method can be used to determine whether an object has the specified property as a direct property of that object; unlike the in operator, this method does not check down the object's prototype chain.
Examples
Example: Using hasOwnProperty to test for a property's existence
The following example determines whether the o object contains a property named prop:
o = new Object();
o.prop = 'exists';
function changeO() {
o.newprop = o.prop;
delete o.prop;
}
o.hasOwnProperty('prop'); //returns true
changeO();
o.hasOwnProperty('prop'); //returns false
Example: Direct versus inherited properties
The following example differentiates between direct properties and properties inherited through the prototype chain:
o = new Object();
o.prop = 'exists';
o.hasOwnProperty('prop'); // returns true
o.hasOwnProperty('toString'); // returns false
o.hasOwnProperty('hasOwnProperty'); // returns false
Example: Iterating over the properties of an object
The following example shows how to iterate over the properties of an object without executing on inherit properties.
var buz = {
fog: 'stack'
};
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
alert("this is fog (" + name + ") for sure. Value: " + buz[name]);
}
else {
alert(name); // toString or something else
}
}
Mozilla Developer Network