従来からの JavaScript の書き方だと「定義」するときにグルーバル環境を汚染してしまう課題があった。
window.Hoge
みたいに書いてしまう問題。
回避策はたくさんあるけど、人によって書き方が異なると「使う」ときに大変。
特に複数のライブラリが依存し合うスクリプトの場合、読み込み順序に気を配る必要がある。
こうした "Definition" と "Dependency References" の課題を解決する方法のひとつとして
AMD (Asynchronous Module Definition) がある。