我的理解是這樣的:
首先,JavaScript是一個強大的腳本(函數式+面向對象)語言,它有很多快速高效的解釋器,然而,它並沒有一個用於更廣泛應用程序的標准庫。
CommonJS是個規范,這個規范中定義了許多API,用於普通應用程序(主要指非瀏覽器的應用)使用的API,從而填補了這個空白。它的終極目標是提供一個類似Python,Ruby和Java標准庫。這樣的話,開發者可以使用CommonJS API編寫應用程序,然后這些應用可以運行在不同的JavaScript解釋器和不同的主機環境中。
NodeJS就是CommonJS這個規范的實現者。
CommonJS其中就有一個Modules規范,這個Modules規范設計之初是為了server端設計的,它是一個同步的模式,這種模式並不適合瀏覽器端,所以AMD規范誕生了,它最大的特點就是可以異步的方式加載模塊。
RequrieJS其實就是AMD現在用的最廣泛,最流行的實現,其中,Require.js主要提供define和require兩個方法來進行模塊化編程,前者用來定義模塊,后者用來調用模塊。