hasOwn() 與 hasOwnProperty() 的差異
前言
JavaScript 的新標準裡有個 hasOwn() ,抽個空來做個學習,在此做個紀錄。
內容
查了一下發現這個 funciton 跟舊有的 hasOwnProperty() 很有關係,是新標準用來替換舊有的,它們的差異可以參考範例。
範例如下
let person = { hasOwnProperty: function() { return false; }, age: 35 }; console.log( Object.hasOwn(person, 'age') ); // true console.log( person.hasOwnProperty( 'age' ) ); // false
範例的'person'裡有一個 hasOwnProperty() ,這個 function 會在 person.hasOwnProperty() 時喚起造成覆蓋的現象,但是 hasOwn() 沒這個麻煩。
根據 [ developer.mozilla.org ] Object.hasOwn() 裡的說明,這個新增的 function 就是要替代舊有的 hasOwnProperty() ,所以就直接替代即可。
參考資料
[ stackoverflow.com ] Object.hasOwn() vs Object.prototype.hasOwnProperty()
[ developer.mozilla.org ] Object.hasOwn()
沒有留言:
張貼留言