アロー関数について
アロー関数とは
関数式の簡潔に記述するために作られた代替構文
従来の関数が持つ機能から余計な機能を削り、複雑な仕様を単純化したもの。
その為、ある程度の制限がある
何のためにアロー関数を使用するのか
アロー関数を使用することで、関数リテラルを使った関数の定義を簡略化して記述することができる。
アロー関数の記述方法
(引数,...)=> {...関数の本体...}
let 変数名= function(a, b) {
return 戻り値;
};
という関数があったとしすれば
let 変数名 = (a,b) => {
return 戻り値;
}
アロー関数の制限
- this,arguments,superへの結びつけがないため、メソッドとして使用できない
- new,targetキーワードがない
- call,apply,bindのような、スコープを確立したことを前提としたメソッドには適さない
- コンストラクターとして使用することはできない
- アロー関数の本体内でvieldを使用することはできない
よりシンプルなアロー関数の記述方法
1,本体が一分である場合
本体が一文である場合、ブロックを表す{...}を省略できる。
また、文の戻り値がそのまま戻り値とみなされる為、returnの記述も省略される。
let getTriangle = (base, height) => base * height / 2;
console.log(getTriangle(10,2));
2,引数が一つの場合
引数が一つの場合、引数をくくる()も省略できる。
let getCircle = radius => radius * radius * Math.PI;
console.log(getCircle(10));
3,引数がない場合
引数がない場合は()を省略せずに記述する
let show = () => console.log('Hello world');
show();
thisの固定
アロー関数ではthisはアロー関数が宣言された場所によって決まる
定義したコンテキストでthisを固定する為 let self = this;を書かなくてよい