在es6中,提供了⼀种简洁的函数写法,我们称作“箭头函数”。
(箭头函数相当于匿名函数,并且简化了函数定义。写法:函数名=(形参)=>{……} 当函数体中只有⼀个表达式时,{}和return可以省略,当函数体中形参只有⼀个时,()可以省略。但是包含多条语句,这时候就不能省略{ ... }和return。)
特点:箭头函数中的this始终指向箭头函数定义时的离this最近的⼀个函数,如果没有最近的函数就指向window。
区别:
1、箭头函数是匿名函数,不能作为构造函数,不能使用new,箭头函数的定义比普通函数更加简洁清晰。
2.在普通函数中,this总是指向调⽤它的对象,如果⽤作构造函数,this指向创建的对象实例,⽽箭头函数指向箭头函数定义时的离this最近的⼀个函数,如果没有最近的函数就指向window。
3.箭头函数内没有arguments,普通函数有,arguments是参数的意思,是一个类数组对象,里面放的就是函数的参数。
4.箭头函数的this,自己没有this,用的是父级所在环境的this。
(1):箭头函数有什么缺点?
1.箭头函数不能通过call()、apply()、bind()方法直接修改它的this指向。
2.箭头函数没有原型属性。
3.某些箭头函数代码难以阅读。
4.没有 arguments。
(2)什么时候不能使用箭头函数?
1.对象方法中,不适用箭头函数。
2.原型方法中,不适用箭头函数。
3.构造函数也不行!
4.动态上下文中的回调函数。
5.Vue 生命周期和 method中的方法上也不能使用箭头函数。