收藏
回答

直接 set 对象会直接修改到源数据?

小程序修改 object中的array数据项不使用setData也会直接修改内存的源对象?

基础库:2.9.4

代码

JS

Page({


/**

  * 页面的初始数据

  */

data: {

formData:{

test:[1,2],

test1:'哈哈哈'

}

},

handleSubmit(){

 let self = this,

params = {

test: this.data.formData.test,

test1:this.data.formData.test1

}


console.log(params)

console.log(this.data.formData)

//params = {"test":[1,2],"test1":"哈哈哈"}   formData = {"test":[1,2],"test1":"哈哈哈"}   success


params.test[0] = '哈哈哈';

 

console.log(params)

console.log(this.data.formData)


//params = {"test":["哈哈哈",2],"test1":"哈哈哈"}  formData = {"test":["哈哈哈",2],"test1":"哈哈哈"}  ???


}

})



为什么会直接把内存的源对象给修改了???????







回答关注问题邀请回答
收藏

1 个回答

  • ʚ青哥ɞ
    ʚ青哥ɞ
    2019-12-05

    不规范会出错的哦

    2019-12-05
    赞同
    回复 1
    • 从小就很酷
      从小就很酷
      2019-12-05
      这个不是规不规范的问题吧 js本身就是可变性比较强
      我用的是let定义局部 按理说是修改的params只会修改到params对象 我就是想不通为啥this.data.formData也给我修改了
      2019-12-05
      回复
登录 后发表内容
问题标签