这个"..."什么意思?

export default {
    ...user,
    ...utils,
    ...message,
    ...topic
};
阅读 2.6k
3 个回答

以上两位都没答到点上。
这是针对对象的展开操作符,注意,是对象,即{ x, y, ...z },尚未进入es标准,目前处于Stage 3。目前的标准是数组的展开操作符,即[x, y, ...z],已经在es6标准中。

数组的不说了,说对象的:

// Rest properties
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }

// Spread properties
let n = { x, y, ...z };
console.log(n); // { x: 1, y: 2, a: 3, b: 4 }

回到原题

export default {
    ...user,
    ...utils,
    ...message,
    ...topic
};

相当于

export default Object.assign({},user,utils,message,message,topic);

参见:https://github.com/sebmarkbag...

es6 iterator

// 例一
var str = 'hello';
[...str] //  ['h','e','l','l','o']

// 例二
let arr = ['b', 'c'];
['a', ...arr, 'd']
// ['a', 'b', 'c', 'd']
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题