ES6允許使用=>定義函數,箭頭函數使得表達更加簡潔,例如
// 正常函數寫法
[1,2,3].map(function (x) {
return x * x;
});
// 箭頭函數寫法
[1,2,3].map(x => x * x);
定義方式
1. 一行代碼可以省略代碼塊花括號{}
var f = () => 5;
//等同
var f = function () {
return 5
}
2. 一個參數可以省略函數的小括號()
var f = v => v;
//等同
var f = function f(v) {
return v
}
3. 多個參數多行代碼常規寫法
var sum = (num1, num2) => num1 + num2;
// 等同於
var sum = function(num1, num2) {
return num1 + num2;
};
注意事項
- 函數體內的this,指向定義時的對象,而不是使用時的對象
- 不能當作構造函數,不能使用new命令
- 不能使用arguments對象,可以使用rest參數代替
- 不可使用yield命令,因此箭頭函數不能用作Generator