简单类型(基本类型) 非对象或数组 为 值引用 ;如下代码 c值没有改变
var c=5; //传递的是c的值 function setc(c){ c=4; } setc(c) console.log(c) //5
对象传参 则发现 处理过后 原函数的值进行了改变
在之前双向数据绑定的时候,这样操作数据 就会引发很多问题
var c={a:5},c1=[1];
function setc(c){
c.a=4;
c1[0]=2
}
setc(c)
console.log(c,c1)
//Object {a: 4} [2]
解决方法一般都是进行对象拷贝
var c = { a: 5 }, c1 = [1];
function setc(c, c1) {
c = Object.assign({}, c)
// 或JSON.parse(JSON.stringify(c));
c1=c1.concat([])
// 或JSON.parse(JSON.stringify(c));
c.a = 4;
c1[0] = 2
}
setc(c, c1)
console.log(c, c1)
//Object {a: 5} [1]