hasOwn() 與 in 的不同
前言
在之前的 在 JavaScript 使用 in 與 hasOwnProperty() 與 hasOwn() 的差異 分別學習了 in 與 hasOwn() ,它們的功能很像,兩者都是檢查物件裡是否存在某成員,抽個空研究一下差異,在此把學習的過程做個紀錄。
內容
範例如下
class baseClass{ get prop(){ return 1234; } } let obj = new baseClass(); // console.log( 'constructor' in obj );//true console.log( Object.hasOwn( 'constructor' , obj ) );//false // console.log( 'prop' in obj );//true console.log( Object.hasOwn( 'prop' , obj ) );//false
in 可以檢查 'constrouctor' ,但 hasOwn() 卻沒辦法,會還傳 false ,還有一個差異是 class 裡的 getter 與 setter , in 一樣可以檢查,但 hasOwn() 會會傳 false 。
參考資料
[ masteringjs.io ] The Difference Between in and hasOwnProperty in JavaScript
沒有留言:
張貼留言