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'
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
对象解构,以key键名
数组解构,以下标顺序
其他剩余 ,“...”需要在最后一个