前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >for in 的问题

for in 的问题

原创
作者头像
泽霖
发布2023-12-20 00:05:16
840
发布2023-12-20 00:05:16
举报
文章被收录于专栏:分享技术分享技术

我们有一个 Obj1 的实例。该实例具有名称和年龄属性。当我们打印 obj1 时,它返回该对象的实例属性,仅返回名称,而不返回年龄。然而,Obj1 的原型也有一个属性 Age,并且该属性不能通过 obj1 的实例直接访问。

代码语言:javascript
复制
function obj1(){
    this.name= "myName";
}
obj1.prototype.age = 10;
const i = new obj1();
console.error(i);
// obj1 { name: 'myName' }

但是当我们使用 for...in 循环时。

代码语言:javascript
复制
for(let prop in i){
   console.error(prop); 
}
// name and age both property is present

for...in 循环的问题在于它不仅返回对象的实例属性,还返回它通过原型继承的所有属性。

代码语言:javascript
复制
// 解决方案:我们可以使用 hasOwnProperty 方法来判断实例属性。
for(let prop in i){
    if(i.hasOwnProperty(prop)) console.error(prop); 
}

我正在参与 2023 腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档