在编写这样的代码时,jsLint会抱怨隐含的全局变量:
var Test = (function(){
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}());
Test.fnc("hat");
Run Code Online (Sandbox Code Playgroud)
(具体来说,'隐含的全球:警报4')
什么被认为是避免这种情况的正确方法?我的本能反应就是这样,但我不相信它是'正确的':
var Test2 = (function(global){
var alert = global.alert;
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}(this));
Test2.fnc("hat");
Run Code Online (Sandbox Code Playgroud)
编辑:共识似乎是问题不是我访问全局的事实,更多的是我没有告诉jslint全局变量是什么.我会把这个打开一段时间以确定是否有其他人有输入,然后我会选择一个答案.
您可以在评论前添加文件
/*global alert $ document window*/
这通常是我告诉JSLint它不是暗示而是外部的.
这既不引人注目又告诉你的程序员你将这些变量声明为外部变量,这对于更大的多文件程序是有用的.
| 归档时间: |
|
| 查看次数: |
4938 次 |
| 最近记录: |