javascript循环push 对象问题

新手入门问题 不知道自己理解的对不对,请帮忙指点一下,谢谢。
最近在做的一个项目,需要循环push 一个对象,大致如下代码

var arr=[1,2,3,4,5,6,7];    var newarr=[];    var getarr= function () {    //每次循环都push一次as对象
    var as={                ss:""
            };        for(i in arr){            as.ss=arr[i];
            newarr.push(as);
        }        console.log(newarr)
    };    var btns=document.getElementById('Go');
    btns.addEventListener('click',getarr)

这种最后结果输出的都是最后一次循环的值,

这是调整过后的

var arr=[1,2,3,4,5,6,7];    var newarr=[];    var getarr= function () {        for(i in arr){            var as={                ss:""
            };            as.ss=arr[i];
            newarr.push(as);
        }        console.log(newarr)

    };    var btns=document.getElementById('Go');
    btns.addEventListener('click',getarr)

我的理解是 都是push 对象,但第一种声明在前,也就是说每次赋值,然后push是同一个对象,
第二种是 每次循环push的是名字相同的不同对象。不知道这种理解对不对。
刚开始我还以为是闭包问题,新手上路 多多指教。


慕容3067478
浏览 1464回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript