为什么自己写的方法会修改到后台返回来的数据

 self.$ajax

      .get("/api/http/shop/searchShop.jhtml", {

        params: {

          shopId: src[5]

        },

      })

      .then(function(response) { 页面返回的东西

    

    // console.log(response);


    self.detailForm = response.data.result;

    console.log(response.data.result.phone)


    self.detailForm.phone  = Utils.iphoneSymbol(self.detailForm.phone);


    console.log(response.data.result.phone)

    }

   }

https://img4.mukewang.com/5ca2d3d200014f3707050104.jpg

慕妹3146593
浏览 494回答 4
4回答

忽然笑

js有这样一个特性,如果你给某个变量a赋值b而且这个值是一个对象字面量比如{key:100}的时候,那么你对赋值后的变量a的key属性修改,那么b也会相应的变化,但是如果你再对a赋值c,那么b是不会变化的。复杂类型数据变量本质上就是指针,如果你修改了变量内部的属性,那么就是直接修改指针指向的内存中的值,所以另一个同样指向该地址的值就会发生变化,但是如果你重新赋值,那么变量a就重新指向另一个地址,仅此而已,注意下,基本类型不是指针

鸿蒙传说

应该是深拷贝与浅拷贝的问题,再了解一下引用类型和基本类型的问题

婷婷同学_

指向的是同一数据源

蓝山帝景

self.detailForm并不是一个变量,所以它指向的数据是response.data.result。self.detailForm.phone这里被格式化等于response.data.result.phone被格式化
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript