JavaScriptのアロー関数をIE, FF, Chromeで打ってみた

IE11

Chrome 43

FireFox 38

さすがFFだぜ!

以下、細かい動作。ScalaとかC#あたりと同じような印象を受ける。

あと、重要なのがthisの扱いが異なるということです。

アロー関数 | MDN

アロー関数はそのコンテキストの this の値を捕捉する

とのことです。まだ仕様が揺れていますのでこれでfixするかどうか分かりませんが、これはかなり重要でしょう。もしこうなったらjqueryとかどうするんだろ。イベントハンドラを追加するときに普通$(this)で取るよね?たとえばmapとかeachに渡す関数は第一引数がインデックス、第二引数が$()でラップされてないDOMオブジェクト(とかの対象の要素)だよね。

アロー関数で書くようになったら毎回(i, e) => $(e).attr("data-aho")... と書かなきゃならんの?ちょっと面倒だなあ。でももしアロー関数が広まってきたら.map(e => e.foo )みたいな感じで書けるように、第一引数に対象の要素、第二引数にインデックスとかを渡してほしいなあ。

まー、とりあえずやってみましょう。

オブジェクト指向に慣れているひとからすれば直感的ですね。JavaScriptばっかり打ってる人からするとむしろ奇異に見えるかもしれません。そのあたり、日々JavaScript, C#, Scala, クソJavaを駆使して戦っている私は抜かりない。JavaScriptで変数をよくvalで定義してしまってIDEに怒られるのは内緒だ。