1. 箭头函数的形式
(a,b,c) => {函数声明}
- 当箭头函数只有一个参数时
a => {函数声明}
- 当箭头函数只有一个return语句时
a => a+1
必须是return语句,只有一个其他类型的语句不能省略大括号 - 没有参数时:
() => { 函数声明}
2. 箭头函数的特点
没有自己的this,arguments,super
- 它的this就是定义时所在对象的this,而不是使用时所在对象的this
- arguments对象可以用 rest 参数代替。
3. 箭头函数的应用举例
例1

上面打印出 id为42。因为箭头函数里面的this指向它创建时的对象,也就是foo函数执行时的this,而foo函数执行时用call绑定了{id:42}这个对象,所以打印出id为42
如果不用箭头函数,那么由于setTimeout中的普通函数会在全局下执行,并且它的this只想全局对象window,所以会打印出21。
例2

上面不用箭头函数age始终是0。因为setInterval内部的函数是一个全局函数,所以他的this指向全局,但全局下面没有定义过age。


网友评论