直接 = 赋值不OK....对象和数组都是复杂类型数据,所以储存时存的不是值,是什么堆栈什么玩意儿的那个地址。。直接用=赋值的话赋的不是值,而是那个地址。。。所以当改变新值的值时,连原始的都一起改变了。
复制对象 ↓ let b = JSON.parse(JSON.stringify(a));
let obj = {
a: '1',
b: '2',
c: '3'
}
let b = JSON.parse(JSON.stringify(obj));
这时,b和a一样,并且改变b的值时a不受影响。
复制数组 ↓ es6语法的扩展运算符
let arr = [1,2,3];
let b = [...arr];
网友评论