次の例で、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が不平を言っている理由を誰でも説明できますか?
ありがとう!
マット