关于for-in循环

for-in用于遍历对象属性。不需要定义任何控制条件,for-in会有条不紊的遍历每个对象属性,并返回属性名而不是值。

以下测试

function People (name,sex) {
    
    this.name = name;
    this.sex = sex;
    
}
People.prototype.getName = function () {
    
    return this.name;
    
}
var aa = new People("laoca","girl");

for (var att in aa) {
    
    if (aa.hasOwnProperty(att)) {
        
        console.log("name:"+att);
        console.log("nameValue:"+aa[att]);
        // 这里输出结果为name:name,nameValue:laoca,name:sex,nameValue:girl
    }
}

加入hasOwnProperty()是为了不把原型继承的属性遍历出来(自我理解,为了不把原型方法也一起遍历出来,只是为了遍历出对象的实例属性),这里使用for in时推荐每次都是使用hasOwnProperty()方法来过滤实例属性。

注意!

for in循环是用来遍历对象的,使用for in来遍历数组成员可能会造成潜在的错误,for in循环是用来对实例对象和原型链中的键(Key)做遍历的,而不是用来遍历包含数字索引的数组的,切记!

转载于:https://www.cnblogs.com/SLEBEE/p/3963880.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值