我正在使用闭包编译器来缩小和加速我的代码,但是当我尝试export my functions时,我遇到了一些JSLint问题。
基本上,我有一个带有函数foo{}
的对象,foo.bar()
通过外部文件调用。为了在外部调用此函数,我需要在编译之前向我的脚本添加一些声明:
window['foo'] = foo;
window['foo']['bar'] = foo.bar;
这很有效,但是 - 就像以前一样 - JSLint认为我甚至在尝试这个时都很精神。我设法通过在这两行之前声明/*jslint sub: true */
来抑制点符号错误,但我仍然收到以下错误:
"window['foo']['bar'] = foo.bar;" - Weird assignment
这没有错,这是一个奇怪的任务背景,但我需要它在那里,以便我的代码工作。
我看到它的方式,我有三种可能的选择:
Weird assignment
错误。问题是,我不知道如何去做任何一件事。
答案 0 :(得分:0)
您可以使用goog.exportSymbol
而不是括号表示法导出名称:https://github.com/google/closure-library/blob/master/closure/goog/base.js#L1532
Closure Compiler了解goog.exportSymbol
是什么,因此它会删除显式的exportSymbol调用,并将foo
和bar
直接添加到窗口中。