アロー関数
-
- ES2015(ES6)の新構文の一つ
- 無名関数の省略記法。
- 無名関数とアロー関数とは完全に等価というわけではないため、取り扱いにはいくつかの注意が必要。
- =>(矢)を使って関数リテラルを記述
- (引数,...)=>{...関数の本体...}
基本構文
//従来の関数式
var fn = function (x) {console.log(x);};
//上記をアロー関数に置き換えたもの
var fn = (x) => {console.log(x);};
//関数の引数が複数ある場合はカンマで区切ります
var fn = (x, y, z) => {console.log(x, y, z);};
//関数の引数が1つのみならば引数部分の丸括弧を省略できます
var fn = x => {console.log(x);};
//引数が無い場合は丸括弧は省略できません
var fn = () => {console.log('hoge');};
通常の無名関数との違い
- thisの参照が関数定義時に決まる(thisの扱いに注意)
- argumentsオブジェクトを持たない
- コンストラクタとして振る舞うことはできない