Page({
data: {
test:{ a:1, b:2 }
},
onLoad: function (options) {
let t=this.data.test;
t.b=3
},
})
为什么AppData(下图) test里的b是3?
这是什么原因, 望告知~
结贴:这是我要的
Page({ data: { test:{ a:1, b:2 } }, onLoad: function (options) { let t= this .data.test, k = JSON.parse(JSON.stringify(t)) k.b=3 console.log(t,k) }, }) |
引用数据类型,你赋值的时候赋的是一个地址值,指向的是同一个对象啊
this
.data.test这不是赋值了?
没函数的话试试这个JSON.parse(JSON.stringify(XXXX))
浅拷贝跟深拷贝的问题
结贴:无满意回答 ,执行数组拷贝,单独赋值 即可实现操作t变量且不影响data 数据
可以直接设置 this.data 的值,只是如果不调用 setData 方法,数据改变了页面不会刷新
加载后你data里面你设置修改data.b=3了他就打印3