1 修改data里面某个对象属性的属性
1.1 data数据
data: {
  person: {
    name: "小明",
    age: 18,
    weight: 188
  },
  date: "2021-09-06",
  title: "这是一个标题"
  ...
}
1.2 获取person的属性,tongguodata访问
this.data.person
1.3 修改
1) 方法一
获取person的数据,修改name后直接setData
let person = this.data.person
person.name = '小刚'
this.setData({person})
2) 方法二
利用解构赋值,然后重写要修改的属性
this.setData({
  person: {
    ...person,
    name: '小刚'
  }  
})
3) 方法三(推荐)
获取要修改的属性名的字符串形式,然后直接setData
let propertyStr = 'person.name'
this.setData({
['person.name']:'小刚'}
)
或
  this.setData({
   'person.name':'小刚'}
 )
 
2 关于给data对象的某个属性赋值一个对象的情况
2.1 示例
1) 简介
在data中定义两个数据,settingData和defaultSettingData都是空对象
  data: {
    applyDetail:{},  
    applyDetailbase:{},
}
2) 在页面初始化时,就为两个数据赋值
data.obj是个对象{name:"法外狂徒",age:25}
    
    that.setData({
      applyDetail: data.obj,
      applyDetailbase: data.obj
    })
3) 单独修改settingData
that.setData({
      'applyDetail.name': '张三'
发现defaultSettingData也跟着一起改变了,并且和settingData一模一样。
{name:"张三",age:25}
4) 原因
  初始化赋值时,为两个数据赋得同一个值,这里只是把对象的地址赋值给了两个属性。两个属性只是指向了同一个对象
2.2 解决(深拷贝)
深拷贝工具类
// 对象深拷贝函数
function deepClone(initalObj) {
  var obj = {};
  obj = JSON.parse(JSON.stringify(initalObj));
  return obj;
}