今天做的一个项目,需要把一个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);
总结一下,是要注意对象的赋值,很容易影响原变理,这方面的内容,得加深学习。