【发布时间】:2015-03-17 12:56:43
【问题描述】:
我正在使用 JSLint 探测我的代码中的错误,到目前为止,我设法修复了所有错误,但我的全局应用程序变量未定义时的问题除外。
我在运行正常的 JSlint 之前使用了这段代码:
var APP = APP || (function {
return {
init: function () {
}
};
}(window.document));
然后我会打电话
APP.init();
初始化。但是 JSlint 不喜欢全局变量,所以我将代码更改为:
(function (global){
var APP = {
init: function () {
}
};
return APP;
}(window.document));
这段代码毫无问题地通过了 JSLint 测试,但是随后 当我调用 APP.init();它说在定义之前使用了APP,这是真的。 你会推荐什么,以便我不使用全局变量但仍然创建我的应用程序对象,而我的代码通过 JSlint 测试?
【问题讨论】:
-
在您重写的版本中,
APP是一个局部变量。如果您尝试在该函数之外使用它,则会收到错误消息。 -
然后当我调用 APP.init(); - 你没有在你共享的代码中调用那个函数,所以很难说出 JSLint 抱怨什么关于。
-
如果您要避免使用全局变量,则所有内容都必须在
function(global)函数内,包括APP.init()。
标签: javascript jslint