天天看点

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"]      

继续阅读