javascriptでfunction()を省略して書く 〜 アロー関数 〜

function って書くの冗長だなと思っていたら、いつの間にか実装されていた。
chrome拡張の開発だったら、chromeが常に最新版に更新されるし、chrome以外のことを
考える必要ないので、使ってもいいんじゃね。

chrome拡張の開発は、最新の技術を心置きなく盛り込めるのですごく楽しい。
反面、chrome依存で実装されてない機能があるときはちょっと困る。cssのjustifyとか

全部これに書き換えようと思ったら、thisのスコープの扱いが違うので、注意が必要。
便利なんだけど、そのまま置き換えるとはまる。

  • 例えば,オブジェクトのメソッド定義でアロー関数を使う場合
var obj = {
  a: 'test',
  init: function(){
    console.log(this.a);
  }
}
  • 単純に以下のようにアロー関数に置き換えるとエラーが発生する。
var obj = {
  a: 'test',
  init: () => {
    console.log(this.a);
  }
}

この場合thisに入っているのは外のwindowオブジェクトになる。

var obj = {
  a: 'test',
  init(){
    console.log(this.a);
  }
}

これを正しく省略したい場合はこう書く