如何创建JS模块?

时间:2016-05-17 05:21:28

标签: javascript module

我对这里做什么感到有些困惑。我见过很多人在JS中创建模块,但每个人通常都会采用不同的方式。我已经看到人们将他们的WHOLE模块包装在(function(){})();中,或者他们声明了一个对象文字,或做了像window.Module = {};这样的疯狂事情。我想知道什么是最好的选择(如你认为最有用的)。非常感谢帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

创建JavaScript模块只有一个官方解决方案。你看到的任何其他东西要么是针对那个解决方案的polyfill,要么是对真实事物的苍白回声。

基本语法如下:

import otherStuff from "otherStuff.js";
var myThing = {};

myThing.stuff = function(){ /*...*/ };
myThing.do = function(){ otherStuff.doOther(); );

export default myThing;

它会变得更加复杂,但基础是:

  • 您的模块必须位于唯一的文件中。文件是一个模块。
  • 您的模块应可能导出某些内容,但这并非绝对必要。

这是JavaScript中的管道。不幸的是,没有人能够就如何加载模块的官方规范达成一致,因此他们不会在任何近期版本的轨道上。也就是说,规范是under development,以及实现它的polyfill has been created

使用官方模块语法的最佳选择是通过BabelJS运行它并编译为类似Require的垫片(使用AMD格式),这样您就可以在没有加载器规范的情况下使用它。

您可以详细了解语法herehere

答案 1 :(得分:1)

我会说:这取决于你的“模块”的最终用法。如果它是内部使用的东西,这意味着你企业以外的任何人都不会使用它,那么只要你们都同意正确的方法,就可以使用任何东西。否则,如果它将由其他人使用:您创建的全局变量越少,它就越好。例如,jQuery使用“$”和“jQuery”作为全局变量(也许是其他变量,但我不确定)。当人们向其添加模块时,他们总是将它们添加到window.jQuery.[Under jQuery var],其中{j}文档中应该读取[Under jQuery var]以便正确使用。