let statList = {
title: {
x: "center"
},
xAxis: {
type: "category",
axisTick: {
alignWithLabel: true
}
},
yAxis: {
type: "value"
}
};
let statObj = {};
statObj.chatObj = Object.create(statList);
statObj.carObj = Object.create(statList);
statObj.saObj = Object.create(statList);
statObj.chatObj.xAxis.data = [1, 2, 3];
statObj.carObj.xAxis.data = [4, 5, 6];
statObj.saObj.xAxis.data = [7, 8, 9];
console.log(statObj)
为什么返回的
statObj.XX.xAxis.data
相同?为什么当我使用
console.log(JSON.stringify(statObj))
时,结果是{"chatObj":{},"carObj":{},"saObj":{}}
? 最佳答案
通常我会用下面的技巧来解决这个问题
statObj.chatObj = JSON.parse(JSON.stringify(statList));
我不认为这是一个好的实践,但通过这种方式,我可以确保创建的对象在内存中有自己的地址。
Object.assign()
的问题是它不能处理嵌套属性,不管怎样,创建的对象是可变的。关于javascript - 为什么返回的数据相同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45875652/