箭头函数和普通函数的区别
2018-11-08 本文已影响0人
郭静135
什么是箭头函数?
箭头函数就是没有function关键字,而是一个类似箭头的函数:

相当于

它们之间的区别:
箭头函数作为匿名函数,是不能作为构造函数的,不能使用new

箭头函数不绑定arguments,取而代之用rest参数…解决

箭头函数会捕获其所在上下文的 this 值,作为自己的 this 值

使用call()和apply()调用
通过 call() 或 apply() 方法调用一个函数时,传参方式不同

箭头函数没有原型属性

箭头函数不能当做Generator函数,不能使用yield关键字
箭头函数不能换行

对于函数的this指向问题,我总结了以下几个方面:
1. 在普通函数里谁调用就指向谁
2. 在事件处理函数里,第一层的this指向函数触发事件的那个对象
3. 在严格模式下,普通函数里的this为underfind
4. 箭头函数指向定义时所在的作用域中的this指向
5.函数在预编译过程中this指向window
6.在全局作用域里this指向window
7. Call和apply可以改变函数运行时的this指向
8. 使用new 实例化对象,在构造函数中的this指向实例化对象。