赞
踩
扩展运算符用于取出参数对象中的所有可遍历属性,拷贝到当前对象中。如果将扩展运算符用于数组赋值,只能放在最后一位,否则会报错。扩展运算符对对象的拷贝属于浅拷贝,实际在拷贝的时候,拷贝的是对象的引用,当原对象发生变化,拷贝的对象也会跟着变化。
let obj = {a: 1, b: 2};
let obj2 = {...obj}
obj2.b = 3
// obj = {a: 1, b: 2};
// obj2 = {a: 1, b: 3};
// ES5 的写法 function f(x, y, z) { // ... } var args = [0, 1, 2]; f.apply(null, args); // ES6 的写法 function f(x, y, z) { // ... } var args = [0, 1, 2]; f(...args); /************ Math.max方法,简化求出一个数组最大元素的写法 *************/ // ES5 的写法 Math.max.apply(null, [14, 3, 77]) // ES6 的写法 Math.max(...[14, 3, 77]) // 等同于 Math.max(14, 3, 77);
ES5 写法中,push方法的参数不能是数组,所以只好通过apply方法变通使用push方法。有了扩展运算符,就可以直接将数组传入push方法
// ES5 的写法
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
Array.prototype.push.apply(arr1, arr2);
// ES6 的写法
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1.push(...arr2);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。