鍍金池/ 問(wèn)答/HTML/ 為什么自己寫的方法會(huì)修改到后臺(tái)返回來(lái)的數(shù)據(jù)

為什么自己寫的方法會(huì)修改到后臺(tái)返回來(lái)的數(shù)據(jù)

    
   
   self.$ajax
      .get("/api/http/shop/searchShop.jhtml", {
        params: {
          shopId: src[5]
        },
      })
      .then(function(response) { 頁(yè)面返回的東西
    
    // 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)
    }
   }

clipboard.png

回答
編輯回答
不將就

js有這樣一個(gè)特性,如果你給某個(gè)變量a賦值b而且這個(gè)值是一個(gè)對(duì)象字面量比如{key:100}的時(shí)候,那么你對(duì)賦值后的變量a的key屬性修改,那么b也會(huì)相應(yīng)的變化,但是如果你再對(duì)a賦值c,那么b是不會(huì)變化的。復(fù)雜類型數(shù)據(jù)變量本質(zhì)上就是指針,如果你修改了變量?jī)?nèi)部的屬性,那么就是直接修改指針指向的內(nèi)存中的值,所以另一個(gè)同樣指向該地址的值就會(huì)發(fā)生變化,但是如果你重新賦值,那么變量a就重新指向另一個(gè)地址,僅此而已,注意下,基本類型不是指針

2018年2月12日 13:37
編輯回答
情已空

self.detailForm并不是一個(gè)變量,所以它指向的數(shù)據(jù)是response.data.result。
self.detailForm.phone這里被格式化等于response.data.result.phone被格式化

2017年3月9日 19:53
編輯回答
神曲

應(yīng)該是深拷貝與淺拷貝的問(wèn)題,再了解一下引用類型和基本類型的問(wèn)題

2017年5月16日 09:14
編輯回答
青裙

指向的是同一數(shù)據(jù)源

2017年11月12日 20:23