-4

長さ約 3000 行の JavaScript コードがあります。すべての関数は 1 つのファイルにあります。同じファイル内に関数を含める方法があるかどうかを知る必要があります。

例:

function renderGameLayout()

これには、すべてのレイアウト設計が含まれます。

コードの後半で、別の関数内でその関数にコールバックしますか? 私は試した:

function getGames()
{
    // other js code here
    $(document).ready(function() 
    {
        renderGameLayout();
    });
    // other js code here
}

別の関数内で、これは機能しませんでした。助言がありますか?注: 別の .js ファイルを含めたくありません。提案しないでください。

4

2 に答える 2

2

大規模な JS プロジェクトの場合、特に JS ゲーム エンジンで作業している場合は、RequireJS などを使用してファイルと依存関係を管理することを確認する必要があります。

http://requirejs.org/

答えと、プロジェクト構造を整理するためのより良い方法が見つかると思います。

于 2013-05-23T17:09:35.863 に答える
1

問題が何であるかを判断するのは難しいですが$(document).ready()renderGameLayout関数を起動することを期待していると思います。関数内にラップ$(document).ready()したため、期待どおりに動作しません。それをファイル本体に移動します。

$(document).ready(renderGameLayout());

renderGameLayoutまたは、代わりに次のようにエンクロージャを使用して() を起動します。

(function() {
    renderGameLayout();
})();

あなたのコードは、現状ではあまり意味がありません。

編集:

質問を読み直した後、ページにスクリプトを追加せずに、別のスクリプト ファイルで関数を使用したいようです。その場合、いいえ、できません。JavaScript は、他の関数の存在を認識する必要があります。スクリプトを含めない場合、関数がどこで何を行っているかをどのように知るのでしょうか?

その関数を関数でいっぱいの非常に大きなファイルに移動するか、ページにスクリプトを追加することができます。それらはあなたのオプションです。

編集#2:

理想的には、JavaScript を意味のあるファイルに分割し、本番環境に移行するときにそれらを結合して縮小することをお勧めします。3000 行でいっぱいの巨大なファイルは悪い考えのように思えます。

于 2013-05-23T17:15:48.827 に答える