我正在尝试理解为什么JSLint会在以下示例中抱怨隐含的全局变量:
var TEST = (function () {
var count = 0;
function get_count() {
return add_one();
}
function add_one() {
count += 1;
return count;
}
return {
get_count: get_count
};
}());
在JSLint中运行此代码会出现错误:
第5行第12个字符存在问题:'add_one'未定义。
同时还会提示:
隐式全局变量:add_one 5
如果您将add_one()
函数移动到get_count()
函数之前,则不会出现错误。但是,使用上面的代码时,在浏览器中运行它时不会产生任何错误。有人能解释一下为什么JSLint会抱怨吗?
谢谢!
马特
var a = function() { }
,JavaScript 会在您调用代码下方使函数可用。 :) - alex}());
被推荐使用而不是})();
参考 https://dev59.com/2HM_5IYBdhLWcg3wRw11#1450768 - Factor Mystic