をJSLint「が定義されています前に、機能を使用した」原因:名前空間パターンは、私は、次の名前空間パターンを使用していますエラー
var MyNamespace = new function() {
var foo = function() {
bar();
};
var bar = function() {
alert("bar");
};
this.init = function() {
foo();
};
};
$(document).ready(function() {
MyNamespace.init();
});
JSLintは、それが定義される前bar
が使用されていることを訴えます。しかし、foo
は、bar
が宣言されるまで呼び出されません。コードは私が試したすべてのブラウザで正常に動作します:http://jsfiddle.net/jDKvz/
パターンはHow do I declare a namespace in JavaScript?、2番目の答えです。
ここで何かを修正する必要がありますか、それともJSLintを無視するだけですか?
おそらく、2つの関数の順序を逆にすると、JSLintは幸せになるでしょうが、それを行う必要があるかどうかは主観的です。私はすべてについてJSLintに同意しませんが、この場合はおそらくコードを変更してシャットダウンします。 – nnnnnn
@nnnnnn私の実際のプロジェクトははるかに複雑で、おそらく互いに呼び出す関数を含んでいます。 – Flash
その場合、私はこの時点でJSLintを無視しても大丈夫です。 'var foo = function()...'ではなく 'function foo()...'構文を使ってみると、相違が生じているかどうかを知ることができます。実際に気に... – nnnnnn