2

JSHintは、メソッドが使用される前に定義されていないと、メソッドが認識されないと言っています。

すべてのメソッドを順番に再配置することはできますが、メソッドを「前方宣言」することで警告を回避する方法があることを望んでいます。

正しい名前が何であるかはよくわかりませんが、これらの関数がコードのさらに下に存在することをインタープリターに知らせてほしいと思います。

ここに完全なレポート-http ://www.jshint.com/reports/67008

ありがとう

4

2 に答える 2

4

これらの関数がコードのさらに下に存在することをインタープリターに知ってもらいたいのです。

インタープリター、これらの関数がコードのさらに下に存在することを認識しています。コードは問題なく実行されるはずです。気に入らないのはjshintだけです。

便利で意味のある順序で関数を宣言しても問題はありません。たとえば、関連する関数を互いに近くで宣言するのが普通です (そして便利です)。個人的には、スクリプトの先頭でページ初期化タイプの関数を宣言すると便利だと思いますが、後で宣言される他の関数を呼び出すことは避けられません。

コードに何らかの「事前宣言」を導入すると、コードの読み取りと保守が難しくなると思います。明らかに、事前宣言と実際の宣言を一致させる必要があるためです。コード内で離れて配置されます。翌週戻ってきて関数を変更するときは、コードの両方の部分を更新することを忘れないでください。つまり、矛盾やバグが発生する可能性が高くなります。

したがって、jshint の目的はコードの信頼性を高めることであるとすると、長期的にはコードの信頼性が低下するとしても、jshint を渡すためだけに人為的な構造を追加したくないことは確かです。

その警告を回避するために考慮すべき唯一の再構築は、関数の順序を変更することですが、私の意見では、この場合は警告を無視する方がよいでしょう。(警告をオフにするオプションはありますか?)

于 2011-11-12T21:34:08.100 に答える
0

できることは set だけだと思いますがundef:false、これは他の問題につながります。

関数を含むファイルがそれらを呼び出すコードの前にロードされるという前提で、それを無視するか、再構築するか、実行する必要があるかもしれません。

于 2011-11-12T20:11:20.230 に答える