hasOwnProperty()
let arr={name:'1',id:'2'}
arr.__proto__.sex='女'
let b=arr.hasOwnProperty('sex')
console.log(b) //返回true false
只有自身存在该属性时,才会返回true,如果是原型链上的值会返回false。
如果报Do not access Object.prototype method 'hasOwnProperty' from target object,直接使用(文章)
Object.prototype.hasOwnProperty.call(obj, 'key')
Object.prototype.hasOwnProperty.call(arr, 'name')
in 运算符
let arr={name:'1',id:'2'}
arr.__proto__.sex='女'
'name' in arr //true
'sex' in arr //true
'address' in arr //false
无法区分自身和原型链上的属性,当原型链上有需要的属性时,会直接显示true