关于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)做遍历的,而不是用来遍历包含数字索引的数组的,切记!

posted @ 2014-09-10 10:09  SLEBEE  阅读(315)  评论(0编辑  收藏  举报