判斷對象是否具有屬性的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:42
zookeeper集群配置怎樣操作
ZooKeeper是一個分布式應用程序協調服務,它使用一組服務器來提供高可用性和容錯性。要配置ZooKeeper集群,需要完成以下步驟:1.下載和安裝ZooK...詳情>>
2023-03-03 11:23:01
性能測試的指標是什么
性能測試是一種通過測量系統或應用程序的特定方面來評估其性能的測試方法。性能測試可以幫助發現性能瓶頸,優化應用程序或系統的性能,從而提高...詳情>>
2023-03-01 10:11:00