天天看點

JavaScript判斷屬性存在自身或者原型對象

更新2021-7-15

JavaScript判斷屬性存在自身或者原型對象

如圖所示 當我們a.a 或者 c[‘c’]的時候 有值 那麼可能來自哪裡了

let foo = {a:12}

var bar = Object.create(foo) // 建立對象 繼承foo通過原型的方式

bar.b =21
21
bar.a
12
Object.getPrototypeOf(bar) 
// 擷取變量原型對象 也可以通過如下方法判斷原型對象屬性
// 因為原型對象也存在 hasOwnProperty 方法
{a: 12}
bar.hasOwnProperty('b') // 判斷自身是否存在屬性
true
Object.getPrototypeOf(bar) === foo // 判斷原型是誰
true
let c = {a:1}

c.__proto__ = foo
{a: 12}
Object.getPrototypeOf(c) === foo
true
for in 循環判斷 是包含了對象的自身與原型對象
for(a in bar) {console.log(a)}
VM1216:1 b
VM1216:1 a
Object.keys(bar)
["b"]
Object.getOwnPropertyNames(bar)
["b"]      

繼續閱讀