箭头函数与普通函数的区别
- 箭头函数语法更加简洁、清晰。
- 箭头函数会捕获其所在上下文的this值,作为自己的this值,定义的时候就确定并固定了。
- call、apply、bind 并不会影响其this的指向。箭头函数中的this并不会指向传入的第一个参数,第一个参数被忽略,而是指向了window对象。
- 箭头函数不能作为构造函数使用,也不能使用new关键字(因为箭头函数没有自己的this,它的this其实是继承了外层执行环境中的this,且this指向永远不会改变,作为构造函数其的this要是指向创建的新对象)。
- 不可以使用arguments对象,该对象在函数体内不存在。如果要用可以用rest参数代替。
- 箭头函数没有原型prototype。
- 箭头函数不能用作Generator函数,不能使用yield关键字。