アロー関数とただの関数でthisの違い

アロー関数でのthisは外側のthisと同じだが、ただの関数では同じとは限らない。

let アリス = {}
// 外側関数をアリスに結び付けて実行。
外側関数.call(アリス)

function 外側関数() {
  'use strict'
  console.log(this === アリス) // true (モードによらず)
  let アロー関数 = () => {
    console.log(this === アリス) // true (モードによらず)
  }

  function ただの関数() {
    console.log(this === undefined) // true 
    // ゆるいモードならthisはグローバルオブジェクト。
    // (ブラウザ=>window, Node.js=>global)
  }
  アロー関数()
  ただの関数()
}