JDK6では、複数のスクリプトをそれぞれファイルに読み込み、あるスクリプトが別のスクリプトのメソッドを参照する方法はありますか? "インクルード"のような並べ替え?JavaScript(Rhino)ライブラリを使用するか他のスクリプトを含める
答えて
は、私はあなたがRhinoのグローバルオブジェクト/スコープ/含める方法に似
load("file1.js");
load("file2.js");
load("file3.js");
methodFromFileOne();
var bar = methodFromFileTwo();
var etc = dotDotDot();
これはjavascriptのソースファイルをロードするには、PHPになります必要のload() method/property後にしていると思います。ファイルをロードすると、ロードされたファイルで定義されたオブジェクトを呼び出し、機能させたり、オブジェクトを使用したりすることができます。あなたは、私が知っている唯一のコンテキストであるRhinoのシェルを、使用しているときは、ことが起こる場合
これは、(あなたの質問は、経験の私の領域の外にあるJava SDKを、言及した)物事の仕組み
各ファイルを同じスコープで実行する限り、以前に実行されたファイルから関数と変数を参照することができます。
大きな助け、ありがとう –
ですアリの中にこれを実行しようとすると、このエラーが表示される場合があります。
<script language="javascript">
load('foo.js');
</script>
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot find function load.
が、あなたはそれを回避することができます
<script language="javascript">
eval(''+new String(org.apache.tools.ant.util.FileUtils.readFully(new java.io.FileReader('foo.js'))));
</script>
>> '' + <<はここで重要です! –
実際の例この時間、つまりを実行していますパーサー(Rhino 1.7R4)このコードを実行した後
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;
...
Context context = Context.enter();
Scriptable globalScope = context.initStandardObjects();
Reader esprimaLibReader = new InputStreamReader(getClass().getResourceAsStream("/esprima.js"));
context.evaluateReader(globalScope, esprimaLibReader, "esprima.js", 1, null);
// Add a global variable out that is a JavaScript reflection of the System.out variable:
Object wrappedOut = Context.javaToJS(System.out, globalScope);
ScriptableObject.putProperty(globalScope, "out", wrappedOut);
String code = "var syntax = esprima.parse('42');" +
"out.print(JSON.stringify(syntax, null, 2));";
// The module esprima is available as a global object due to the same
// scope object passed for evaluation:
context.evaluateString(globalScope, code, "<mem>", 1, null);
Context.exit();
は、次のように出力が表示されます。
{
"type": "Program",
"body": [
{
"type": "ExpressionStatement",
"expression": {
"type": "Literal",
"value": 42,
"raw": "42"
}
}
]
}
をだから、確かに、トリックがglobalScope
オブジェクトを再利用しています。
- 1. カスタムPower BIビジュアルに他のJavaScriptライブラリを含める
- 2. 他のPC用にVisual Studioにライブラリを含める
- 3. Rhinoを使用するメリット(mozilla's rhino)
- 4. RhinoとRhinodoを使用したJavaのNodeJSライブラリの使用
- 5. 計算のためのjavascriptライブラリを含める
- 6. Cアプリケーションで他の言語のライブラリを含める
- 7. esp8266 Arduinoにregexと他の標準ライブラリを含めるには
- 8. Rhinoを使用してEclipse内でJavascriptをデバッグする
- 9. JavaScriptコードのRhinoパーサーを使用してJavaScriptの文字列を解析する
- 10. jarにライブラリを含める
- 11. Codeigniterにライブラリを含める
- 12. JavaScriptを使用したプロセスの開始[Rhino JSの使用]
- 13. 他のスクリプトをブロックするASP.NETのJavaScript
- 14. はJavaScriptを使用して別のスクリプトのほんの一部を含め
- 15. Android Studioでjarを作成する方法他のjarライブラリを含める
- 16. 他のライブラリを使用するArduinoのCusomライブラリ
- 17. PreactJSに外部のjavascriptライブラリを含めるには?
- 18. 他のテンプレートを含むテンプレートを含めるためにng-includeを使用する
- 19. RhinoでJavaのJavaScriptをコンパイルする
- 20. 他のスクリプトで使用するスクリプトからのUnityアクセスブール値
- 21. GeinoをRhino JavaScriptエンジンで使用することはできますか?
- 22. Angular 2 TypeScriptプロジェクトに外部JavaScriptライブラリを含める
- 23. reactjsに外部javascriptライブラリを含めるには
- 24. angal 2アプリケーションにsalvattore javascriptライブラリを含める方法
- 25. Visual Studio TypeScriptビルドにjavascriptライブラリを含める方法
- 26. ng-packagrを使用してライブラリを構築する際にアセットを含める
- 27. Arduino IDEを使用して別のライブラリのライブラリを含めることは可能ですか?
- 28. Rhinoを使用したJavascriptからJavaへ
- 29. Node.jsに外部スクリプトを含めるには? node.js.で外部ライブラリを含める方法
- 30. "使用するものを含める"
これはRhinoシェルの外で利用できますか? – Thilo
わかりません、それは私の賃金率ではありません。 (それを反映するように質問を更新しました) –