ES6模块与揭示模块模式

时间:2017-09-02 07:05:43

标签: javascript ecmascript-6

1. ES6模块与使用IIFE和闭包实现的模块模式有何不同? 2.哪一个应优先于另一个?一些例子可以帮一些吗?

1 个答案:

答案 0 :(得分:0)

揭示模块模式基本上是一种很酷的技巧,用于在ES5环境中制作类似模块的东西。如果您所处的环境中可以使用ES6模块,则应使用这些模块。

如果您不在可以使用ES6模块的环境中*您应该使用ES6转换器(例如Babel)将模块化源代码编译为可在目标环境中使用的格式。

差异的简短列表:

  • ES6模块具有导入和导出语法
  • 如果您只想公开一个类(或其他类),ES6模块已命名导出和默认导出。
  • ES6模块导入在分析时进行静态分析。如果您尝试导入不存在的属性,则会收到错误。
  • ES6模块导入是"观看"原始变量,而不是作业。 (某些转发器可能不支持这种情况。)

ECMAScript 6 modules: the final syntax是对ES6模块工作方式的一个很好的总结。**

*截至9月9日,节点不支持ES6模块。在某些浏览器中有支持,但是没有主要的库可以利用它。

**它讨论的浏览器API,System.import不是那个部分最终工作的方式。