EcmaScript 6 のアロー演算子はfunction(){}の『シンタックスシュガーではない』

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions

アロー関数は、this の値をレキシカルに束縛します。

function Person() {
  // Person() のコンストラクターは自分自身を `this` として定義します。
  this.age = 0;

  setInterval(function growUp() {
    // 非strict モードでは、growUp() 関数は `this` を Person() コンストラクターで定義された `this` とは違い、グローバル オブジェクトとして定義します。
    this.age++;
  }, 1000);
}

arguments も this と同じようにレキシカルに束縛される。
https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/

Because ‘arguments’ is also lexically bound like ‘this’

f = () => console.log(arguments);
f();  // undefined

ff = function() { console.log(arguments); }
f();  // arguments {}

f = function(getArgsList){
  getArgsList.forEach( (n) => console.log( arguments[n] ) );  // このコードは期待通りに動作する
}
f([2,4,6], "a1","a2","a3","a4","a5","a6","a7"); // "a2","a4","a6" ……が出力される