javascript - json对象赋值给另一个json对象的问题
伊谢尔伦
伊谢尔伦 2017-04-11 12:24:02
[JavaScript讨论组]

for循环 改变dispatch对象中的某个字段的值,再放到allTask这个对象中
key值改变了 但是dispatch这个是最后一次的才赋值进去,没有达到预期的值
这个是什么原理?怎么解决

源码:

运行结果:

预期的结果是:

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
天蓬老师

allTask['123456-0'] allTask['123456-1'] allTask['123456-2'] dispatch
这四个指向的是同一个对象,所以输出时,以最后一次修改为准。你可以在for循环的最后加上dispatch={},使每次循环时,都new一个新的对象出来

阿神

dispatch 用的是同一个变量了,所以循环里后面的赋值把前面的覆盖了。

可以在循环里面定义dispatch 变量。

伊谢尔伦

把for循环里面的var改成let

天蓬老师

dispatc,可以理解成其他语言中的类的实例,你无论怎么赋值,在都还是它

黄舟

for循环第一行添加dispatch = {};,没有这一句你引用的对象就是同一个,allTask里既然都是同一个对象,当这个对象变化了,数组中所有元素(其实是一个相同的元素)就都变化了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号