for循环 改变dispatch对象中的某个字段的值,再放到allTask这个对象中
key值改变了 但是dispatch这个是最后一次的才赋值进去,没有达到预期的值
这个是什么原理?怎么解决
源码:
运行结果:
预期的结果是:
for循环 改变dispatch对象中的某个字段的值,再放到allTask这个对象中
key值改变了 但是dispatch这个是最后一次的才赋值进去,没有达到预期的值
这个是什么原理?怎么解决
源码:
运行结果:
预期的结果是:
for循环第一行添加dispatch = {};
,没有这一句你引用的对象就是同一个,allTask
里既然都是同一个对象,当这个对象变化了,数组中所有元素(其实是一个相同的元素)就都变化了。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
allTask['123456-0'] allTask['123456-1'] allTask['123456-2'] dispatch
这四个指向的是同一个对象,所以输出时,以最后一次修改为准。你可以在for循环的最后加上dispatch={},使每次循环时,都new一个新的对象出来