如何判断对象是否存在某个属性
in 方法
- in方法判断对象的本身还有原型上是否存在某个属性
hasOwnProperty
- 值判断对象本身,不会查找对象原型
代码
var obj = {
a:1,
b:2
}
// in 方法可以判断对象本身和对象原型链是否存在每个属性
console.log('in方法','a' in obj) //true
console.log('in方法判断原型','c' in obj) // false 此时obj原型上面是没有c属性的
obj.__proto__.c = 3
console.log('in方法判断原型','c' in obj) // true
// hasOwnProperty
console.log(obj.hasOwnProperty('a')) //true
console.log(obj.hasOwnProperty('c')) //false ,表示hsaOwnProperty只能查找对象本身不能查找对象原型上面的属性