箭头函数基本用法
ES6 允许使用“箭头”(=>)定义函数,箭头函数虽然可以使代码更加简洁明了,但是箭头函数不能乱使用,因为其中的this指向是与普通函数不同的。
function Dog(){}//普通函数
let Dog = ()=>{}//箭头函数
箭头左边()
中的内容是箭头函数的参数
- 当没有参数的时候,()不可以省略
- 当只有一个参数的时候,()可以省略
- 如果有多个参数,不可以省略()
箭头右边{}
中的内容是箭头函数的函数体
- 如果只有一句话 ,{}可以省略不写,默认带一个return关键字
- 如果箭头的右边出现了{},那么return关键字不可以省略
箭头函数的特点
- this指向指向的是定义时所在的对象 , call,apply,bind方法也无法改变this指向
- 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误
- 不可以使用arguments对象,该对象在函数体内不存在,可以用 rest 参数代替
- 箭头函数没有prototype属性
- 不可以使用yield命令,因此箭头函数不能用作 Generator 函数
不适用场景
- 需要动态this的时候,也不应使用箭头函数。比如:给元素绑定事件
- 使用arguments属性时
- 作为构造函数时