spread-syntax

<pre>

sprend syntax 展开语法, es6 语法

应用场景: 数组, 字符串展开, 用在函数传参,数组初始化,对象展开成k-v键值对
就相当于 对数组, 字符串, 对象 迭代

语法;
1. 函数传参 myfunc(...args)
2. 数组 [1,3,5,...array, 7]
2. 对象展开 {...obj}

</pre>

<script>

// 1. 在函数调用的时候,替换apply方法
function myfunc(x, y, z) {
console.log(x + y + z)
}
var args = [1, 2, 3];
myfunc.apply(null, args) // apply 方法接受数组(伪数组),函数调用的时候自动展开

// 替换apply方法
myfunc(...args);

// 在函数调用的时候,传参数可以通过...展开数组,平铺参数传入函数
// 构造函数


// 2. 拷贝数组
// 仅能拷贝一维数组 这一点和object.assign一致
var arr = [1,2,3]
var arr2 = [...arr];

// 2.1 连接数组,合并数组
// 以前 concate 尾部添加 unshift 首部添加
var arr3 = [1,2,3];
var arr4 = [4,5,6];
var arr5 = [...arr3, ...arr4];

// 3. 对象拷贝 浅拷贝 shallow-copy
// object.assign() 方法会触发setter spread syntax不会
var obj = {
name: 'zhangs',
age: 22
}
var obj2 = {...obj}

</script>
posted @ 2018-12-26 10:07  techMessage  阅读(120)  评论(0编辑  收藏  举报