hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(排除原型上的属性)
for in 遍历对象时,输出的是对象的key值;遍历数组时,输出的是数组的下标
// 对象
let obj = { "a": 1, "b": 2, "c": 3 };
obj.__proto__["d"] = 3;
for(let i in obj) {
console.log(i) // a b c d
}
for(let i in obj) {
if(Object.hasOwnProperty(i)) {
console.log(i) // a b c
}
}
// 数组
let arr = [{"a": 1, "b": 2}, {"a": 2, "b": 3}];
arr.__proto__.c = 10;
for(let i in arr) {
console.log(i); // 0 1 c
}
for(let i in arr) {
if(arr.hasOwnProperty(i)) {
console.log(i) // 0 1
}
}
网友评论