当前位置: 代码迷 >> 综合 >> hasOwnProperty()遍历对象所有的非继承属性
  详细解决方案

hasOwnProperty()遍历对象所有的非继承属性

热度:97   发布时间:2024-01-28 16:30:23.0

创建一个对象

	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:"小红"