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