2022年8月1日 星期一

hasOwn() 與 hasOwnProperty() 的差異

 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()


沒有留言:

張貼留言