In this article, we will look at hasOwnProperty()
method in javascript, its purpose and use it to check if an object has an entry with given key along with example programs
A javascript object is a collection of key-value pairs enclosed between curly braces. A single key-value pair is separated by a colon(:) while multiple key-value pairs are separated by a comma(,).
Below is an example of an object in javascript.
let laptop = { brand: 'Apple', model: 'Macbook Air', ram: 8GB }
To know more about javascript object, read this article.
Object.hasOwnProperty()
Many times you need to check if a property exists in an object so that you can get its value and use it somewhere.
All javascript objects contain hasOwnProperty()
method which accepts a property name as a string argument and returns true
if the property belongs to the object and false
if it does not.
Example,
let laptop = { brand: 'Apple', model: 'Macbook Air', ram: '8GB' } // check if object has property const isBrandName = laptop.hasOwnProperty('brand'); document.write('Has brand: ' + isBrandName); // access property if(isBrandName) { document.write('Laptop brand: '+ laptop['brand']); }
This prints
Has brand: true
Laptop brand: Apple
Before accessing a property, it is always better to check if it even exists in the object or not and this can be done using hasOwnProperty()
.
Remember that hasOwnProperty()
only checks for the existence of a property only in the object on which it is invoked.
It does not check the property in the object’s prototype or parent tree.
There is another way to check if a property exists in an object or not with
in
operator.So the above code can be written using
in
operator as
let laptop = { brand: 'Apple', model: 'Macbook Air', ram: '8GB' } // check if object has property if('brand' in laptop) { document.write('Laptop brand: '+ laptop['brand']); }
However, there is a slight difference between hasOwnProperty()
and in
.
hasOwnProperty()
does not check for the property existence in an object’s parent tree while in
goes up the object tree to find the property if it cannot find it in the current object.
So, if you want to check if a property exists in only the current object, then use hasOwnProperty()
and if you also want to inspect an object’s parent, then use in
.
hasOwnProperty()
method in javascript.