关于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
相关推荐
敖云岚2 分钟前
【云原生技术】容器技术的发展史
开发语言·云原生·perl
Anlici8 分钟前
跨域解决方案还有优劣!?
前端·面试
苹果电脑的鑫鑫10 分钟前
在使用element-ui时表单的表头在切换页面时第一次进入页面容易是白色字体解决方法
javascript·vue.js·ui
庸俗今天不摸鱼14 分钟前
【万字总结】构建现代Web应用的全方位性能优化体系学习指南(二)
前端·性能优化·webp
忧郁的蛋~19 分钟前
JavaScript性能优化的12种方式
开发语言·javascript·性能优化
人工智能研究所20 分钟前
使用OpenCV与Python编写自己的俄罗斯方块小游戏
开发语言·python·opencv
DDD小小小宇宙20 分钟前
python列表基础知识
开发语言·windows·python
海盗强23 分钟前
prototype和proto的区别
开发语言·javascript·原型模式
潜龙在渊灬27 分钟前
杂谈:前端 UI 框架和 UI 组件库的区别
javascript·vue.js·react.js
追寻光33 分钟前
Java 绘制图形验证码
java·前端