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都是同一个对象
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
楼主了解下引用类型