关于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
相关推荐
林恒smileZAZ2 小时前
Vue<前端页面版本检测>
前端·javascript·vue.js
码事漫谈5 小时前
当AI开始“思考”:我们是否真的准备好了?
前端·后端
许杰小刀5 小时前
ctfshow-web文件包含(web78-web86)
android·前端·android studio
014-code5 小时前
订单超时取消与库存回滚的完整实现(延迟任务 + 状态机)
java·开发语言
lly2024066 小时前
组合模式(Composite Pattern)
开发语言
我是Superman丶6 小时前
Element UI 表格某行突出悬浮效果
前端·javascript·vue.js
恋猫de小郭6 小时前
你的代理归我了:AI 大模型恶意中间人攻击,钱包都被转走了
前端·人工智能·ai编程
游乐码6 小时前
c#泛型约束
开发语言·c#
Dontla6 小时前
go语言Windows安装教程(安装go安装Golang安装)(GOPATH、Go Modules)
开发语言·windows·golang
chushiyunen6 小时前
python rest请求、requests
开发语言·python