list=[{name:1,id:0},{name:1,id:0},{name:2,id:1}]
list.map((item,index)=>{let temp =item;temp.index= index})
为什么我把index赋值给了一个新定义的临时变量temp,list中的元素还是会改变?
js是如何做到的?
list=[{name:1,id:0},{name:1,id:0},{name:2,id:1}]
list.map((item,index)=>{let temp =item;temp.index= index})
为什么我把index赋值给了一个新定义的临时变量temp,list中的元素还是会改变?
js是如何做到的?
这是很明显的问题啊。你这里的item是一个对象,所以你let temp=item 只是将temp的指针指向了 item对象,
如果修改了temp的内容,item对象的内容也是为跟着改变的啊 。简单来说 就是你的temp和item都是同一个对象
1 回答851 阅读✓ 已解决
1 回答1.1k 阅读
2 回答773 阅读
2 回答617 阅读
2 回答601 阅读
1 回答677 阅读
2 回答520 阅读
楼主了解下引用类型