创建一个对象
let obj = {name: "小明",age: 18,}
for…in…方法可以遍历对象的属性,包括继承得来的属性。为了验证这一点,我们先让他继承一个属性。
obj.__proto__.love = "小红";
接下来打印试试
for (let key in obj) {console.log(key, obj[key]);}
得到以下结果:
对象的hasOwnProperty()
方法可以判断对象自身是否包含传入的属性,如果是则返回true
,否则返回false
。继承得到的属性,不属于对象自己的属性,会返回false,我们可以利用此方法来过滤继承得到的属性:
if (obj.hasOwnProperty(key)) {console.log(`${key}: ${obj[key]}`);}
我们来看一下结果:
可以看到,没有打印通过继承得到的属性love:"小红"
。