我有以下代码,并且正在超出范围使用“myGlobal”。我必须返回 myGlobal 或一个新对象,因为该对象已添加到其他文件中。
var myGlobal= (function (my) {
'use strict';
return my;
}(myGlobal|| {}));
在这种情况下有没有办法满足jsLint?
最佳答案
当我碰到这个时,我想我通常会作弊。例如,在浏览器上下文中,所有全局变量都存在于 window
对象中,因此您可以这样做:
/*jslint sloppy:true, white:true, browser:true */
window.myGlobal = (function (my) {
'use strict';
return my;
}(window.myGlobal|| {}));
这在逻辑上归结为同一件事,并且让 JSLint 高兴。
快速编辑:或者,虽然这基本上是相同的技巧(而且这听起来可能是您已经尝试使用 myGlobal
设置的),但请考虑将您的全局变量分组到您定义为全局的命名空间,像这样...
/*jslint sloppy:true, white:true, browser:true */
/*global MyNamespace */
MyNamespace.myGlobal = (function (my) {
'use strict';
return my;
}(MyNamespace.myGlobal|| {}));
尽管那是一种类似的情况。如果你不能绝对确定你有一个 include 定义 MyNamespace
之前的某个地方,你在同一条船上,你现在正在尝试检查 MyNamespace
的存在。
因此,快速回答直接回到上面的 window
技巧。
关于javascript - JSLint 超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507964/