注意事项
- 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,函数体内没有自己的this,其内部的this指向是外层作用域的this(在箭头函数中this的指向是固定,声明的时候就静态绑定了)
- 不可以作构造函数,也就是不能使用new命令,否则会报错
- 不能使用yield命令,所以不能做Generator函数
- 不可以使用arguments对象,因为对象在箭头函数体内不存在。假如要使用arguments对象,则使用rest参数代替
场景:
- 箭头函数适合于无复杂逻辑或无副作用的纯函数场景下,例如,map、reduce、filter的回调函数定义中
- 不适应与有多层嵌套的情况下使用
- 箭头函数不具备普通函数里常见的this、arguments等,不能用call(),apply()、bind()去改变this的指向
- 不适合定义对象的方法(如:对象字面量方法、对象原型方法、构造器方法)
- 不适合定义结合动态上下文的回调函数(如:事件绑定函数),箭头函数在声明的时候会绑定静态上下文