关于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
相关推荐
算法与编程之美6 分钟前
利用java实现数据分析
java·开发语言·python·数据挖掘·数据分析
lmryBC498 分钟前
获取golang变量的类型
开发语言·后端·golang
蜗牛快跑12316 分钟前
通过尤大“围绕Vite的前端统一框架”分享,看未来前端发展趋势
前端
skywalk816319 分钟前
Mac下安装Zed以及Zed对MCP(模型上下文协议)的支持
服务器·前端·macos
陈龙龙的陈龙龙22 分钟前
macOS 安装 Homebrew、nvm 及安装切换 node 版本
前端·macos·bash
asphyxia26 分钟前
老龄化项目问题解决
前端
SaebaRyo27 分钟前
作为一个前端er如何了解LLM(大语言模型)
前端·llm
悬炫27 分钟前
深入解析浏览器渲染原理与性能优化策略
前端·javascript
鸡血园地27 分钟前
前端性能优化
前端
铠文28 分钟前
垃圾回收机制核心知识点
javascript