关于ES6延展符操作

之前在vue组件通信事件中添加循环参数,比如这样:

关于ES6延展符操作

 

 不能直接将循环列表的值传入组件自定义方法中,会覆盖原本返回值,这里使用了es6的延展符操作。更改为

bindChange(...arguments,item)

这样便可以获取到额外添加的参数;另外延展符也可用于拼接对象、数组,比如:

let arr1 = [1,2,3],arr2;
arr2 = [...arr1,4,5]; // 1,2,3,4,5

let obj1 = {a:1},obj2;
obj2 = {...obj1,a : 2} // {a:2}

拓展一下,因为延展符操作是直接返回新的对象,顺便对比了几种对象深拷贝的效率:

关于ES6延展符操作

 

 在常用的几种深拷贝中,不仅语法简单,效率也是最高的;

甚至还可以做到数组去重(语法最简单)

let arr = [1,2,3]
new Set([...arr,2,3,4]); // 1,2,3,4

 

上一篇:ES6 对象扩展


下一篇:JS对象合并方法