アロー関数 this

javascript

アロー関数は this を持たず、レキシカルスコープの this を使用する

持たないことを束縛しないとも表現される

アロー関数をクロージャとして、エンクロージャがどこのスコープで宣言されたかで使用する this を決定する

エンクロージャが存在しなければ window オブジェクト

エンクロージャがオブジェクト内に宣言されていれば、そのレキシカルスコープの this = そのオブジェクト

※ただしエンクロージャが function の場合である

エンクロージャもアロー関数ならば this を持たなくなるからである

そこに function 、つまりエンクロージャのエンクロージャが存在しなければ存在するのは window オブジェクトである


補足: this 以外にもarguments, super, new.target を束縛しない