javascript - JSLint 超出范围

标签 javascript jslint

我有以下代码,并且正在超出范围使用“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/

相关文章:

Javascript 将文件中的所有模块作为全局变量导入

javascript - "use strict"在 JavaScript 中做了什么,背后的原因是什么?

javascript - 我可以把这个评论放在哪里? JSLint 提示放置

javascript - 创建全局 'for' 变量。应该是 'for (var items ...'

javascript - 禁用 javascript 中的内置函数(警报)

javascript - 隐藏一些div(不会占用空间)

javascript - 在 "display:table-cell"之间填充

javascript - MDC-web 未按预期工作

javascript - JSLint 不喜欢++ 增量器。++i 的替代品是什么?

javascript - jslint-vim 配置