新手入门问题 不知道自己理解的对不对,请帮忙指点一下,谢谢。
最近在做的一个项目,需要循环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的是名字相同的不同对象。不知道这种理解对不对。
刚开始我还以为是闭包问题,新手上路 多多指教。
相关分类