1. 概念
箭头函数指的是使用箭头=>语法声明的匿名函数。
2. 简写
箭头函数诞生就是为了简写,有如下规则:
(1)当你的箭头函数仅有一个参数的时候,可以省略掉括号。
(2)当你的函数仅有一个表达式的时候,可以省略{}和return,注意省略return要先省略{}。
(3)但(2)如果返回值是object类型,则不能为x => { name: ‘JT’ },,需要改为x => ({ name: ‘JT’ })。
var who = name => 'hello' + name
3. 区别
与普通函数的区别:
(1) 语法不同,箭头函数使用箭头定义,写法简洁。 普通函数使用function定义。
(2) this指向不同,箭头函数是定义时绑定,普通函数是调用时绑定。
箭头函数没有this,在声明的时候,捕获上下文的this供自己使用,一旦确定不会再变化。在普通函数中,this指向调用自己的对象,如果用在构造函数,this指向创建的对象实例。普通函数可以使用call,apply,bind改变this的指向。
(3) 是否匿名,箭头函数都是匿名函数,而普通函数既可以是匿名函数,也可以是具名函数。
(4) 箭头函数没有arguments(实参列表,类数组对象),可以使用rest参数替代。每一个普通函数在调用后都有一个arguments对象,用来存储实际传递的参数。
(5) 箭头函数不能作为构造函数来使用,普通函数可以用作构造函数,以此来创建一个对象的实例。因为箭头函数没有自己的this,而且匿名函数无法使用new。
(6) 箭头函数没有原型,而普通函数有。因为它不需要作为构造函数,被这样设计。