ES6允许使用=>定义函数,箭头函数使得表达更加简洁,例如
代码语言:javascript复制// 正常函数写法
[1,2,3].map(function (x) {
return x * x;
});
// 箭头函数写法
[1,2,3].map(x => x * x);
定义方式
1. 一行代码可以省略代码块花括号{}
代码语言:javascript复制var f = () => 5;
//等同
var f = function () {
return 5
}
2. 一个参数可以省略函数的小括号()
代码语言:javascript复制var f = v => v;
//等同
var f = function f(v) {
return v
}
3. 多个参数多行代码常规写法
代码语言:javascript复制var sum = (num1, num2) => num1 num2;
// 等同于
var sum = function(num1, num2) {
return num1 num2;
};
注意事项
- 函数体内的this,指向定义时的对象,而不是使用时的对象
- 不能当作构造函数,不能使用new命令
- 不能使用arguments对象,可以使用rest参数代替
- 不可使用yield命令,因此箭头函数不能用作Generator