1

我们很好奇脚本引擎如何处理全局变量。我们正在寻找一个在调用时不保留全局变量状态的脚本引擎。有这样的引擎吗?我们正在寻找一种可以在 Java 脚本引擎 API 下使用的脚本语言。

当多次调用脚本引擎时,对 eval() 或 evaluate() 方法的顶级调用会保留全局变量的状态,这意味着对 eval() 的后续调用将使用上次调用留下的全局变量. 是否有一个脚本引擎不保留状态,或者提供重置状态的能力,以便每次调用脚本引擎时全局变量都处于初始状态?

4

1 回答 1

0

随后对 eval() 的调用不会重置 scriptEngine 的状态:

    myScriptEngine.eval("var myGlobalVar = 5");
    myScriptEngine.eval("myGlobalVar++"); //will set myGlobalVar to 6;

另一方面,来自一个 ScriptEngineManager 的多个 scriptEngine 是完全独立的(至少 JAV8 是这样)。

于 2014-01-11T19:47:33.697 回答