关于for in 循环会遍历原型链上的属性的问题

关于for in 循环会遍历原型链上的属性的问题

for in可遍历原型链上扩展的属性,Object.keys() 只遍历自身属性

1.使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问:

javascript 复制代码
Object.prototype.say="cgl";   // 修改Object.prototype  
    var person ={ age: 18 };
    for (var key in person) {
        console.log(key, person[key]);//这里用person.key得不到对象key的值,用person[key] 或者 eval("person."+key);
    }   //结果: age 18 say cgl

2.只遍历对象自身的属性,而不遍历继承于原型链上的属性,使用hasOwnProperty 方法过滤一下。

复制代码

javascript 复制代码
Object.prototype.say="gwl";
var person ={
	age: 18
};
for (var key in person) {
	if(person.hasOwnProperty(key)){
		console.log(key, eval("person."+key));
	}
} //结果:age 18
相关推荐
张3蜂30 分钟前
Python 四大 Web 框架对比解析:FastAPI、Django、Flask 与 Tornado
前端·python·fastapi
南风知我意95730 分钟前
【前端面试5】手写Function原型方法
前端·面试·职场和发展
qq_124987075331 分钟前
基于Java Web的城市花园小区维修管理系统的设计与实现(源码+论文+部署+安装)
java·开发语言·前端·spring boot·spring·毕业设计·计算机毕业设计
摘星编程36 分钟前
用React Native开发OpenHarmony应用:Image网络图片加载
javascript·react native·react.js
摘星编程39 分钟前
OpenHarmony环境下React Native:ImageBase64图片显示
javascript·react native·react.js
阿蒙Amon1 小时前
TypeScript学习-第13章:实战与最佳实践
javascript·学习·typescript
froginwe111 小时前
Python 条件语句
开发语言
七夜zippoe1 小时前
Python统计分析实战:从描述统计到假设检验的完整指南
开发语言·python·统计分析·置信区间·概率分布
小安驾到1 小时前
【前端的坑】vxe-grid表格tooltip提示框不显示bug
前端·vue.js
2601_949146531 小时前
Python语音通知API示例代码汇总:基于Requests库的语音接口调用实战
开发语言·python