es6结构 {}和[]有啥区别
const { a, b } = res
const [a, b] = res
简单说对象解构使用{},数组解构使用[]
如果你使用[]来解构对象需要实现 iterable
let obj = {a: '我是a', b: '我是b'}
let [a, b] = obj; // 报错没有实现iterable
实现 iterable
let obj = {
a: '我是a',
b: '我是b',
[Symbol.iterator]() {
let index = 0;
let that = this;
return {
next() {
if(index < Object.keys(that).length) {
return {value: that[Object.keys(that)[index++]], done: false}
} else {
return {value: undefined, done: true}
}
}
}
}
}
let [a, b] = obj;
console.log(a); // '我是a'
6 回答2.9k 阅读✓ 已解决
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
对象解构,以key键名
数组解构,以下标顺序
其他剩余 ,“...”需要在最后一个