关于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
相关推荐
叁两5 分钟前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
golang学习记10 分钟前
GitLens 十大神技:彻底改变你在 VS Code 中的 Git 工作流
前端·后端·visual studio code
SuperEugene11 分钟前
后台权限与菜单渲染:基于路由和后端返回的几种实现方式
前端·javascript·vue.js
兆子龙14 分钟前
WebSocket 入门:是什么、有什么用、脚本能帮你做什么
前端·架构
csdn飘逸飘逸14 分钟前
Autojs基础-全局函数与变量(globals)
javascript
是一碗螺丝粉18 分钟前
LangChain 链(Chains)完全指南:从线性流程到智能路由
前端·langchain·aigc
KKKK23 分钟前
手写Promise,从测试用例的角度理解
javascript
月弦笙音23 分钟前
【浏览器】这几点必须懂
前端
青青家的小灰灰24 分钟前
迈向全栈新时代:SSR/SSG 原理、Next.js 架构与 React Server Components (RSC) 实战
前端·javascript·react.js
SuperEugene24 分钟前
弹窗与抽屉组件封装:如何做一个全局可控的 Dialog 服务
前端·javascript·vue.js