JS引用传值问题
问题:在Vue页面中将C变量赋值给A、B,然后修改A值,发现B也给变了。
var c = [1,2,3,4];
var a = c;
var b = c;
a.pop();
console.log(a) //[1,2,3]
console.log(b) //[1,2,3]
console.log(c) //[1,2,3]
如上,此处传值是引用传递而不是值传递。那么,如何解决呢?
var c = [1,2,3,4];
var a = c;
var b = JSON.parse(JSON.stringify(c));
a.pop();
console.log(a) //[1,2,3]
console.log(b) //[1,2,3,4]
console.log(c) //[1,2,3]
如此,采用深克隆的方式把数值转换成字符串,然后再转换成对象。问题解决。修改a的值,b的值不变。