17

まず、注意事項です。メイン スクリプトはWeb ページでは実行されません。Windows Script Host を使用して、Windows で .js ファイルを実行します。

問題: それぞれが多数の関数を持つ多数のオブジェクトを含む JavaScript の「ライブラリ」を作成したいと考えています。このライブラリは時間の経過とともにかなり大きくなると予想されるため、別の JavaScript ファイル ( Library.jsと呼びましょう) に保持したいと考えています。別のスクリプトからLibrary.jsのオブジェクトにアクセスしたいと思います (これをUser.jsと呼びましょう)。

要するに、C/C++ の「インクルード」パラダイムに似たものを探しています。

これをJavaScriptで実装する方法はありますか?(これはWebベースではないことを忘れないでください)

4

3 に答える 3

21

ここにあるこのページは、私が見つけることができる最も近いものです。複数のスクリプト (異なる言語で記述されている可能性があります) を 1 つのファイルに結合できる .wsf ファイルについて説明しています。

あなたの質問の場合、次のようになります。

ユーザー.wsf

<job id="IncludeExample">
   <script language="JScript" src="library.js"/>
   <script language="JScript">
      <![CDATA[
      // use your library functions here
      ]]>
   </script>
</job>

もっと良い方法があるかもしれませんが、私は WSH の専門家ではありません。

于 2009-05-29T21:45:04.443 に答える
14

これは古い質問であり、回答があり、受け入れられていることは承知しています。

.WSF ファイルとその仕組みについて知っています。彼らは目的を果たします。

ただし、WSH で実行される純粋な .js ファイル内から "組み込み" を行うと便利な場合もあります。これが私の解決策です。

    function includeFile (filename) {
        var fso = new ActiveXObject ("Scripting.FileSystemObject");
        var fileStream = fso.openTextFile (filename);
        var fileData = fileStream.readAll();
        fileStream.Close();
        eval(fileData);
    }

そのユーティリティ関数を定義すると、javascript モジュール内からこれを実行できます。

includeFile("externalFile1.js");
includeFile("externalFile2.js");
includeFile("etc.js");

...そして、関数を呼び出したり、それらのモジュールで定義された変数をくすぐることができます。

同様の手法が .vbs ファイルでも機能します。VBScript
に共通ファイルをインクルードするにはどうすればよいですか (C の #include と同様)。

于 2011-04-29T17:45:28.747 に答える
1

特定の .js または .vbs ファイルの代わりに Windows Scripting Host を使用することで、目的を達成できます。詳細については、MSDN サイトを参照してください。

リンクから:

Windows スクリプト (*.wsf) ファイルは、拡張マークアップ言語 (XML) コードを含むテキスト ドキュメントです。これには、スクリプト作成の柔軟性を高めるいくつかの機能が組み込まれています。Windows スクリプト ファイルはエンジン固有ではないため、Windows Script と互換性のあるスクリプト エンジンのスクリプトを含めることができます。それらはコンテナとして機能します。

.js および .vbs ファイルと同じ構文を使用して、ファイルを呼び出します。

wscript.exe myScriptFile.wsf

更新: 修正が指摘されました...

于 2009-05-29T21:50:33.683 に答える