基本语法
ES6 允许使用“箭头”(=>
)定义函数
1 | var f = v => v; |
如果箭头函数不需要参数或需要多个参数,使用一个圆括号代表参数部分
1 | var f = () => 5; |
箭头函数(arrow function)和普通函数(function)的区别?
1、语法更加简洁、清晰
2、箭头函数不会创建自己的this
箭头函数不会创建自己的this,所以它没有自己的this,它只会从自己的作用域链的上一层继承this。
3、箭头函数继承而来的this
指向永远不变
4、.call()
/.apply()
/.bind()
无法改变箭头函数中this
的指向
5、箭头函数不能作为构造函数使用
1 | var Foo = () => {}; |
6、箭头函数没有自己的arguments
箭头函数没有自己的arguments对象。在箭头函数中访问arguments实际上获得的是外层局部(函数)执行环境中的值。
7、箭头函数没有原型Prototype
,即指向undefined
;
1 | var Foo = () => {}; |
8、箭头函数不能用作Generator
函数,不能使用yeild
关键字
9、不绑定 super
和 new.target
;