「定義される前に使用された」エラーを除いて、JSLint を渡す長い JavaScript ファイルがあります。
次のように、通常の関数宣言を使用しました...
function whatever() {do something;}
とは対照的に...
var whatever = function(){do something;};
以前の投稿に対するスティーブ・ハリソンの返信と一致しています...
すべての関数を function キーワードで宣言すると仮定すると、プログラミング スタイルの問題になると思います。個人的には、論理的に見えるように関数を構成し、コードをできるだけ読みやすくすることを好みます。たとえば、あなたと同じように、init 関数を一番上に置きます。ここからすべてが始まるからです。
... 関数を自分にとって意味のある順序で見るのが好きです。
このスクリプトは、テストされたいくつかのブラウザー (例: FireFox、Safari、Mobile Safari、Fennec、IE、Chrome、Midori など) で完全に機能します。
ここに問題があります。Titanium でビルドされた iPhone アプリ内でスクリプトを使用したいのですが、そのコンパイラは「used before defined」エラーで停止します。
どうすればこれを回避できますか?
これはばかげた質問かもしれませんが...関数を特定の順序で呼び出す必要がある場合、呼び出された関数が最初に呼び出した関数にコールバックする必要があるという問題をどのように解決しますか? 例えば...
function buildMenu(){
Display a list of five menu items, each of which calls a function to build the associated screen.
}
function screen1() {
Display the screen associated with menu item #1.
}
関数を順番に宣言する必要がある場合は、function screen1
を先行させる必要がありfunction buildMenu
ます。しかし、特定の条件下で screen1 をビルドできず、メニューを再表示したい場合 (つまり、技術的にまだ宣言されていない関数を呼び出す場合) はどうでしょうか。
そうそう... もう 1 つの質問: プログラマーが手動で行うのではなく、関数を自動的に並べ替える Web サイトまたはプログラムはありますか?