2017-09-02 96 views
0

1.How是ES6模塊從模塊圖案不同實施並使用IIFE和閉合? 2.哪一個應該比另一個更受歡迎?有人可以幫助一個例子嗎?ES6模塊VS揭示模塊圖案

+0

的可能的複製[是什麼browserify/requirejs模塊和ES6模塊之間的差(https://stackoverflow.com/questions/28674652/what-is-the-difference-between-browserify-requirejs-modules-and -es6-modules) –

+0

IIFE是窮人的模塊。它們不處理依賴關係並污染全局名稱空間以進行互操作。您可以在ES模塊上選擇任何體面的閱讀材料,並估算其適用於IIFE的程度。 – estus

回答

0

透露出模塊模式基本上是發明,使一些模塊,像在ES5環境中的酷技巧。如果您處於可以使用ES6模塊的環境中,則應該使用這些模塊。

如果您不在可以使用ES6模塊的環境中*您應該使用ES6轉換器(例如Babel)將模塊化源代碼編譯成可用於目標環境的格式。


的差異的簡短列表:

  • ES6模塊具有進口和出口
  • ES6模塊已命名的出口,因爲如果你只是想揭露一類默認的導出(語法管他呢)。
  • ES6模塊導入靜態分析,在分析時。如果你嘗試導入一個不存在的屬性,你會得到一個錯誤。
  • ES6模塊導入是原始變量的「意見」,不分配。 (這可能不被一些transpilers支持。)

ECMAScript 6 modules: the final syntax是這樣的ES6模塊工作的一個很好的總結。**

*爲二千零十七分之九,節點不支持ES6模塊。有些瀏覽器支持,但沒有大型圖書館利用它。

**瀏覽器API論述,System.import也不怎麼樣那部分結束了,雖然工作。