我在之前那篇useState的文章里面写过简单数据结构的解构出来是全新的变量,不会相互影响
然后现在去实践了复杂类型
结论如下
ES6的赋值解构新认知
对于obj和array这种复杂类型
obj在解构出来的时候,必须要名字一致,
array的话,则是根据index的顺序来解构的,可以不用名字一样
这两个结构出来的都是引用类型,所以修改里面的是会对原数据进行修改的
对于简单数据类型
比如
let a = 1, b = 2, c = 3
let nums = [a, b, c]
let [d, e, f] = nums
d = d + 1
这样是不会改变a的,是两个完全不同的数据
三段代码,可供自行测试
对象形式
let a1 = {
a: {
name: 'lisi',
age: 12
},
b: {
name: '张三',
age: 13
}
}
let { a, b } = a1
console.log(a);
console.log(b);
console.log(a1);
a.name = '李四'
console.log(a);
console.log(a1);
数组形式
let b1 = [{
name: 'lisi',
age: 12
}, {
name: '张三',
age: 13
}]
let [c,d] = b1
console.log(c);
console.log(d);
console.log(b1);
c.name='李四'
console.log(c);
console.log(b1);
数值
let a = 1, b = 2, c = 3
let nums = [a, b, c]
let [d, e, f] = nums
console.log(d);
console.log(a);
d = d + 1
console.log(d);
console.log(a);