问一个关于for...in循环对象内部属性的问题

function abc(a){
    for(var i in a){
        if(typeof a[i] === 'object'){
            alert(a[i])
            abc(a[i]);
        }else{
            alert(a[i])
        }
    }
};
var dx = {
    arr:[1,2,3],
    sz:['a','b','c'],
    dd:{popo:1},
    xx:true
};
abc(dx);

for...in循环第一遍的时候,a[i]表示的是dx对象的arr属性,当第2次、第3次、第4次for..in的时候循环的时候a已经是属性arr了,但是当arr的值循环完之后为什么for..in不停下,还接着循环sz、dd与xx,a是怎么成为sz或dd或xx的

阿里斯托亚
浏览 1994回答 3
3回答

啊啊啊啊123

因为typeof 数组 也是object

Kingziqiang

i 是对象的属性,a[i]是对象的值;一般写for in 迭代时用for( var key in obj){};这样更语义化

Jaydon_

for in 循环可以遍历对象的所有hasownProperty属性..你通过函数把对象传了过去
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript