判断对象是否具有属性的5种方法
在编程开发时,我们经常需要判断一个对象是否具有某种属性。在这里,我们列出 了5种判断对象属性的方法。
1、in Operator
如果指定属性在指定对象或其原型链中,则 in Operator 返回 true。
用法:
但是 in Operator有个缺点,那就是:如果属性来自对象的原型,它仍然会返回 true。
2、Reflect.has() 方法
Reflect.has 方法允许我们检查属性是否在对象中。它像 in Operator 一样作为函数工作。
用法:
3、 hasOwnProperty() 方法
hasOwnProperty() 方法返回一个布尔值,指示对象是否具有指定的属性作为它自己的属性(而不是继承它)。
它可以正确地区分对象本身的属性和其原型的属性。
用法:
但是这种写法有个缺点,就是如果对象是用Object.create(null)创建的话,那么就不能用这个方法了。
4、Object.prototype.hasOwnProperty() 方法
解决前面的问题很简单,我们只需要使用Object.prototype.hasOwnProperty。该方法是直接调用内置的有效用函数,跳过原型链。
5、Object.hasOwn() 方法
由于前面的几种方式都不优雅,ES2022有一个新的提议:Object.hasOwn
如果指定的对象具有指定的属性作为其自己的属性,则 Object.hasOwn() 静态方法返回 true。如果属性被继承或不存在,则该方法返回 false。
用法:
相关推荐HOT
更多>>json格式是什么意思
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输、配置文件和日志文件等场景中。JSON 采用键值对的方式来...详情>>
2023-04-11 13:51:20什么是mybatisplus?有什么特点
Mybatis-Plus(简称MP)是一个基于Mybatis的持久开源层框架,它在Mybatis的基础上扩展了一些实用的功能,使开发更加简单、快速。以下是Mybatis-Pl...详情>>
2023-03-06 16:05:42zookeeper集群配置怎样操作
ZooKeeper是一个分布式应用程序协调服务,它使用一组服务器来提供高可用性和容错性。要配置ZooKeeper集群,需要完成以下步骤:1.下载和安装ZooK...详情>>
2023-03-03 11:23:01性能测试的指标是什么
性能测试是一种通过测量系统或应用程序的特定方面来评估其性能的测试方法。性能测试可以帮助发现性能瓶颈,优化应用程序或系统的性能,从而提高...详情>>
2023-03-01 10:11:00