三点是es6中出现的扩展运算符。作用是遍历当前使用的对象能够访问到的所有属性,并将属性放入当前对象中。结合上面的代码来看就是Vue中能访问到所有名为App的属性都放入Vue中。那么此时就存在一个问题,重名了怎么办,当重名的时候将会选取后者。
扩展运算符的用法还有其他值得注意的地方,下面的例子可以很好的演示:
这个放入当前对象的操作是会影响到被复制的对象的,因为…这个操作是一种引用,并不是直接将数据放入当前的对象里,用下面的例子去描述:
这个时候的a已经被影响到了,因为改变的是引用的对象,所以本质上更改的是a的属性。
ps:追加写法
ES6写法
let arr = [1, 2];
arr.push(...[3, 4]);
console.log(arr)