JS对象的引用,避免多个变量都引用一个对象,对象赋值影响原对象。

 

 

今天做的一个项目,需要把一个JSON数据对象,保存下来。

 

具体是我需要做三个JSON对象

 

一个叫oldPageProducts

一个叫newPageProducts

还有一个是self.pageProducts.productsData(这个是一个全局对象)

 

第1种方式 :开始,我直接将

oldPageProducts=self.pageProducts.productsData

 

结果发现,当我更新self.pageProducts.productsData对象时。

oldPageProducts也跟着改变

 

发现不行。

 

第2种方式:

var newPageProducts = new Object();

                       var oldPageProducts = new Object();

把它们声明为新的对象,结果还是不行。(这真很奇怪),按理说,NEW一个的话,大家的内存空间也是独立的。

 

反正这种方式 也不行

 

第3种方式:

 

 

于是我用Object.assign解决了问题:

 

var newPageProducts = new Object();

                       var oldPageProducts = new Object();

 

  newPageProducts =Object.assign({}, data); //保存新数据

                             oldPageProducts = Object.assign({},self.pageProducts.productsData);  //保存老数据

                             self.pageProducts.productsData = Object.assign({},newPageProducts);

 

总结一下,是要注意对象的赋值,很容易影响原变理,这方面的内容,得加深学习。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值