当编写这样的代码时,jsLint提示隐含的全局变量:
var Test = (function(){
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}());
Test.fnc("hat");
(特别是“隐含全局:警报4”)
什么被认为是避免这种情况的正确方法?我的本能回应是这样,但我不认为这是“正确的”:
var Test2 = (function(global){
var alert = global.alert;
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}(this));
Test2.fnc("hat");
编辑:
共识似乎是问题不是我正在访问一个全局变量,而是更多的是我没有告诉jslint全局变量是什么。我将这个开放时间稍长一点,看看是否有其他人输入了内容,然后我会选择一个答案。
最佳答案
您可以在文件前添加评论/*global alert $ document window*/
通常,这就是我告诉JSLint的暗示,它不是外部的,而是外部的。
这既不麻烦,又告诉您的程序员,您将这些变量声明为外部变量,这对于较大的多文件程序很有用。
关于javascript - 避免在JavaScript(JSlint)中使用隐式全局变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4857169/