顶部变量声明为globaly(ES6 Babel)

时间:2015-08-03 16:04:56

标签: javascript function global-variables ecmascript-6

是否存在从ES6中的模块声明一个函数globaly的方法? 如果我声明一个这样的变量:

global.variablename = function() {};
global.variablename2 = function() {};

在我的主文件中导入的所有模块中都可以使用此功能。 但是如何将我的所有功能保存在文件中并将其导入全局?如果我导入它,则无法从外部插件访问这些功能。当他们调用函数时,结果是未定义的。

提前致谢!

编辑:正如我在评论中写的那样,我有这个问题: 当我使用不显眼的ajax创建一个ajax表单时,我设置了完整事件的回调,如下所示:

@using (Ajax.BeginForm("Action", "Controller", null,
                    new AjaxOptions { OnComplete = "ajaxCallback"},
                    new { id = "ajaxForm", @class = "" }))

如果我在主文件中声明“ajaxCallback”函数,如下所示:

global.ajaxCallback = function() {}

回调工作正常。如果我将它放在一个模块中并导入它(在主文件中),它就不起作用,因为它不在全局上下文中。我必须从模块中导入它,但是在全局上下文中。有可能吗?

1 个答案:

答案 0 :(得分:3)

将变量附加到window会起作用但不建议使用,例如:

window.someVariable = 'foo'

或者在webpack中,您可以通过以下方式使用输出中的库属性: https://webpack.github.io/docs/library-and-externals.html#examples