Modern JavaScript - Arrow Functions

ES6中引入了一种编写函数的新语法

简单函数

1
2
3
4
5
6
7
// ES5
var selected = allJobs.filter(function (job) {
return job.isSelected();
});

// ES6
var selected = allJobs.filter(job => job.isSelected());

当你只需要一个只有一个参数的简单函数时,可以使用新标准中的箭头函数,它的语法非常简单:标识符 => 表达式。你无需输入 function 和 return,一些小括号、大括号以及分号也可以省略。

1
2
3
4
5
6
7
// ES5
var total = values.reduce(function (a, b) {
return a + b;
}, 0);

// ES6
var total = values.reduce((a, b) => a + b, 0);

命名函数定义

1
2
3
4
5
// ES5
const getExtensives = async({}, start, limit) => {};

// ES2015
async function getExtensives({}, start, limit) {};

this

箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域。