我有几个这样的错误,我不知道如何“正确”解决它,问题是我有很多javascript文件(分离以便于维护)并且我包含插件等等。
所以在这个例子中我使用来自http://www.openjs.com/scripts/events/keyboard_shortcuts/
的快捷方式这只是定义了
的快捷方式shortcut = {.......
然后当我在我的代码中使用它时
shortcut.add("F1", function () { showDialog(); }, { 'type': 'keydown', 'propagate': false, 'target': editor_document });
jslint会抱怨
JS Lint:在定义之前使用了'快捷方式'。
我也有自己的代码,我使用在其他文件中声明的函数,所以解决这个问题的“正确”方法是什么
答案 0 :(得分:7)
如果变量由另一个文件定义,您可以通过以下格式提供注释来告诉JSLint:
/*global shortcut*/
您可以通过逗号分隔来为多个变量执行此操作。附加:
和true
或false
(默认为false
)将指定变量是否可以由当前文件重新分配:
/*global shortcut:false, otherVar:true*/
您缺少var
关键字,该关键字用于为全局和函数范围定义变量。
var shortcut = { }
您需要使用var
来确定每个变量,否则您将遇到大量问题。
可以通过省略var
关键字来创建隐式全局变量,但它非常不受欢迎,而且根本不推荐。如果需要从内部范围创建全局变量,可以将对象添加到window
,或者根据上下文this
添加:
function defineShortcut() {
window.shortcut = {};
/* or this.shortcut = {}; */
}
defineShortcut();
答案 1 :(得分:0)
你必须在使用之前用var关键字声明一个变量快捷方式,否则它将是一个全局变量,被认为是(实际上)是邪恶的。
var shortcut;
shortcut = { ...