我对这里做什么感到有些困惑。我见过很多人在JS中创建模块,但每个人通常都会采用不同的方式。我已经看到人们将他们的WHOLE模块包装在(function(){})();
中,或者他们声明了一个对象文字,或做了像window.Module = {};
这样的疯狂事情。我想知道什么是最好的选择(如你认为最有用的)。非常感谢帮助,谢谢。
答案 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格式),这样您就可以在没有加载器规范的情况下使用它。
答案 1 :(得分:1)
我会说:这取决于你的“模块”的最终用法。如果它是内部使用的东西,这意味着你企业以外的任何人都不会使用它,那么只要你们都同意正确的方法,就可以使用任何东西。否则,如果它将由其他人使用:您创建的全局变量越少,它就越好。例如,jQuery使用“$”和“jQuery”作为全局变量(也许是其他变量,但我不确定)。当人们向其添加模块时,他们总是将它们添加到window.jQuery.[Under jQuery var]
,其中{j}文档中应该读取[Under jQuery var]
以便正确使用。