檢查某對(duì)象是否有某屬性
in
操作符和Object.hasOwnProperty
方法來(lái)進(jìn)行這樣的檢查。
雖然上面的代碼運(yùn)行得很好,但你需要注意到,JavaScript提供了兩種更精確的方式來(lái)判斷一個(gè)對(duì)象是否擁有某個(gè)屬性。
in
操作符
in
key3
屬性是從obj
的原型鏈中繼承過(guò)來(lái)的,in
操作符也會(huì)返回true
。
使用 Object.hasOwnProperty
方法
與in
操作符不同,Object.hasOwnProperty
方法不會(huì)檢查原型鏈,它僅僅檢查對(duì)象自身的屬性。
使用 Object.prototype.hasOwnProperty.call
當(dāng)對(duì)象可能沒有從 Object.prototype
繼承的 hasOwnProperty
方法(例如 Object.create(null)
),或者有可能被覆蓋 hasOwnProperty
方法的時(shí)候,你可以使用 Object.prototype.hasOwnProperty.call
Object.prototype
繼承或者覆蓋了 hasOwnProperty
標(biāo)簽: