当编写像这样的代码时,jsLint会抱怨隐式全局变量:
var Test = (function(){
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}());
Test.fnc("hat");
(具体来说,是“隐含全局变量:alert 4”)
如何避免这种情况被认为是正确的方法?我的直觉反应是这样的,但我并不确定它是否“正确”:
var Test2 = (function(global){
var alert = global.alert;
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}(this));
Test2.fnc("hat");
编辑: 似乎大家的共识是问题不在于我访问了全局变量,而是我没有告诉jslint哪些是全局变量。我会再等待一段时间看看是否还有其他意见,然后选择一个答案。