返回

判断对象是否具有属性的 5 种方法

发布时间:2022-11-10 21:04:59 290
# javascript# java# java

判断对象是否具有属性的 5 种方法_原型链

英文 | https://javascript.plainenglish.io/5-ways-to-judge-if-an-object-has-a-property-ec6aa24187af

在编程开发时,我们经常需要判断一个对象是否具有某种属性。在这里,我们列出 了5种判断对象属性的方法。

1、in Operator

如果指定属性在指定对象或其原型链中,则 in Operator 返回 true。

用法:

判断对象是否具有属性的 5 种方法_原型链_02


但是 in Operator有个缺点,那就是:如果属性来自对象的原型,它仍然会返回 true。

判断对象是否具有属性的 5 种方法_编程开发_03


2、Reflect.has() 方法

Reflect.has 方法允许我们检查属性是否在对象中。它像 in Operator 一样作为函数工作。

用法:

判断对象是否具有属性的 5 种方法_静态方法_04


3、 hasOwnProperty() 方法

hasOwnProperty() 方法返回一个布尔值,指示对象是否具有指定的属性作为它自己的属性(而不是继承它)。

它可以正确地区分对象本身的属性和其原型的属性。

用法:

判断对象是否具有属性的 5 种方法_静态方法_05


但是这种写法有个缺点,就是如果对象是用Object.create(null)创建的话,那么就不能用这个方法了。

判断对象是否具有属性的 5 种方法_编程开发_06

4、Object.prototype.hasOwnProperty() 方法

解决前面的问题很简单,我们只需要使用Object.prototype.hasOwnProperty。该方法是直接调用内置的有效用函数,跳过原型链。

判断对象是否具有属性的 5 种方法_静态方法_07


5、Object.hasOwn() 方法

由于前面的几种方式都不优雅,ES2022有一个新的提议:Object.hasOwn

如果指定的对象具有指定的属性作为其自己的属性,则 Object.hasOwn() 静态方法返回 true。如果属性被继承或不存在,则该方法返回 false。

用法:

判断对象是否具有属性的 5 种方法_原型链_08

写在最后

以上就是我今天跟你分享的5种判断对象属性的方法,希望对你有用。

如果你喜欢我今天的内容的话,请记得点赞我,关注我。

最后,感谢你的阅读,祝编程愉快!

判断对象是否具有属性的 5 种方法_编程开发_09



判断对象是否具有属性的 5 种方法_原型链_10


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线