- 发布:2021-08-12 16:25
- 更新:2021-08-13 08:54
- 阅读:538
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 11.5.1
HBuilderX类型: 正式
HBuilderX版本号: 3.1.22
手机系统: 全部
手机厂商: 苹果
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
let aa = [];
let ab = [];
//评论回复体
aa = that.detail.circleComment.comments;
//该值为前端回复评论所需要的对象体,包含content,id,等字段
let ac ={};
ac = that.commitForm;
//插入
aa.unshift(ac);
//回填
that.detail.circleComment.comments = aa;
依次输入 {content:1},{content:2} ,{content:3},{content:4}
结果始终依次为
1
2,2
3,3,3
4,4,4,4
根据网络中别人给的解释:说明多次操作 指向的始终是同一个内存地址;
let aa = [];
let ab = [];
//评论回复体
aa = that.detail.circleComment.comments;
//该值为前端回复评论所需要的对象体,包含content,id,等字段
let ac ={};
ac = that.commitForm;
//插入
aa.unshift(ac);
//回填
that.detail.circleComment.comments = aa;
依次输入 {content:1},{content:2} ,{content:3},{content:4}
结果始终依次为
1
2,2
3,3,3
4,4,4,4
根据网络中别人给的解释:说明多次操作 指向的始终是同一个内存地址;
操作步骤:
let aa = [];
let ab = [];
aa = that.detail.circleComment.comments;
let ac ={};
ac = that.commitForm;
aa.unshift(ac);
that.detail.circleComment.comments = aa;
let aa = [];
let ab = [];
aa = that.detail.circleComment.comments;
let ac ={};
ac = that.commitForm;
aa.unshift(ac);
that.detail.circleComment.comments = aa;
预期结果:
输入 1 ,2 ,3,4
结果应该为 1,2,3,4
输入 1 ,2 ,3,4
结果应该为 1,2,3,4
实际结果:
输入 1 ,2 ,3,4
结果始终依次为
1
2,2
3,3,3
4,4,4,4
输入 1 ,2 ,3,4
结果始终依次为
1
2,2
3,3,3
4,4,4,4
bug描述:
使用 push ,unshift进行数组填充时候,每次都会覆盖上一次的数据,与https://blog.csdn.net/xiaoye319/article/details/78416762?utm_source=blogxgwz2 类似,
实际开发过程中,不管如何使用let var 等变量进行定义,新建 都始终指向一个地址,导致每次添加,都会添加的数值始终一样。
1 个回复
无锡小王子 (作者)
经过多次实践后,发现
ac = that.commitForm;
会将data中的commitForm 内存复制到变量中,应该改成单个赋值。
ac.某变量 = that.commitForm