Get the App
SLTechnology News&Howtos  ›  Development  › 

How to check whether an object has a property by js

Shulou Source: shulou.com Published: 2022-06-01 03:49:11 10月18日 Update

Editor to share with you js how to check whether an object has a certain attribute, I believe that most people do not know much about it, so share this article for your reference, I hope you can learn a lot after reading this article, let's go to know it!

Check whether an object has an attribute

When you need to check whether a property exists in an object, you might do this:

Var obj = {name: 'desert'}; if (obj.name) {console.log (true) / / > Result: true}

This is OK, but you need to know that there are two native ways to solve such problems. The in operator and Object.hasOwnProperty, which can be used by any object that inherits from Object.

Var obj = {name: 'desert'}; obj.hasOwnProperty ('name'); / / > true'name' in obj; / / > trueobj.hasOwnProperty (' valueOf'); / / > false, valueOf inherits from the prototype chain 'valueOf' in obj; / / > true

The depth of the check property is different, in other words, hasOwnProperty only returns true when it has this property itself, while the in operator does not distinguish between attributes that come from itself or inherit from the prototype chain.

This is another example:

Var myFunc = function () {this.name = 'Desert';}; myFunc.prototype.age ='10 days';var user = new myFunc (); user.hasOwnProperty ('name'); > Result: trueuser.hasOwnProperty (' age'); > Result: false, / / because age comes from the prototype chain and above is all the content of the article "how to check whether an object has an attribute or not". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!

Tags: Properties objects lookups prototypes articles desert content operators methods this is different not much examples most more depth knowledge industry information information channels Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MariaDB Linux Docker macOS vpn