JavaScript 对象引用传递导致数据修改问题及解决方案
"me.fields = chartsData; me.fields.push("REPORT_DATE");" 导致修改后 chartsData 也改了内容:这是因为在 JavaScript 中,对象是通过引用进行传递的,当你将 chartsData
赋值给 me.fields
时,实际上是将 chartsData
的引用赋给了 me.fields
。所以当你修改 me.fields
时,chartsData
也会受到影响。\n\n要解决这个问题,你可以使用 Object.assign()
或者展开运算符(...
)来创建一个新的数组副本。这样修改 me.fields
时就不会影响到 chartsData
。\n\n示例代码如下:\n\njavascript\nme.fields = [...chartsData];\nme.fields.push(\"REPORT_DATE\");\n
\n\n或者使用 Object.assign()
方法:\n\njavascript\nme.fields = Object.assign([], chartsData);\nme.fields.push(\"REPORT_DATE\");\n
\n\n这样做就会将 chartsData
的内容复制到一个新的数组中,然后再进行修改。这样 chartsData
就不会被改变。
原文地址: https://cveoy.top/t/topic/p4wo 著作权归作者所有。请勿转载和采集!