ES2015导出内部功能

时间:2016-01-03 13:38:49

标签: javascript export es2015

我正在学习ES2015的导出功能。我尝试在网上理解它,但我的疑虑仍未解决

当我在匿名函数中声明导出时,jshint显示以下错误(至少在Intellij插件中):

E053出口申报必须在全球范围内。

相反,JSHint总是要求在Anonymous函数中包含整个代码。如果我按以下方式编写代码:

export const MY_CONSTANT = 1000;
(function(){
   'use strict';
    //Complete code goes here
}();

我们必须在页面的顶部和底部编写大量代码。有些代码会从文件之间跳转到页面的开头(或结尾)。

2 个答案:

答案 0 :(得分:1)

我能解释它的最好方法是javascript IIFE是创建封装的方式。您可以将模块的代码放在一个并返回某个类型的对象。如果您需要将代码导入其中,您可以使用参数进行导入。新模块语法允许您以不同的方式执行相同操作。将进口视为IIFE的参数,将出口视为回报。以下是Mozilla https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

的导入导出语法的完整说明

此外,如果你想探索更多,我已经创建了一些使用babel,gulp,browserify和jasmine的样板,所以我可以将我的所有代码编写为es2015。 https://github.com/jamesrhaley/es2015-babel-gulp-jasmine.git

答案 1 :(得分:0)

如果您使用的是ES2015模块语法,则可能不需要将代码包装在匿名函数中,因为模块加载器会处理导出的代码。

我不确定每个模块加载器,但是当使用TypeScript + browserify时,每个文件都会被包装以防止变量混乱全局命名空间。有关如何使用模块语法以及为什么可以全局声明变量的更多信息,请参阅Why must export import declarations be on top level in es2015