箭头函数和普通函数的区别:
首先就是 箭头函数作为匿名函数,是不能作为构造函数的
再者就是更重要的一点
箭头函数的特点就是不绑定this和arguments
举个例子:
setTimeout(function(){
this.$router.push({name:"Proposal"})
},3000)
以上是一个延时定时器中的普通function
我们都知道定时器中会改变this的指向,所以如果定时器中是普通的function那么就指向的window。但是这个通常不是我们预期想要的结果
setTimeout(()=> {
this.$router.push({name:"Proposal"})
},3000)
如果定时器中的是一个箭头函数的话,其中的this可并非指向window了
箭头函数会捕获其所在上下文的 this 值,作为自己的 this 值
arguments也是同理
所以箭头函数 是一个匿名函数,并且不绑定this与arguments,在写法上面也精简与普通的function