【问题标题】:Undefined objects in JavaScript engine in JavaJava中JavaScript引擎中的未定义对象
【发布时间】:2014-06-07 20:26:44
【问题描述】:

在Java7中执行以下代码

ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("js");
Bindings b = scriptEngine.createBindings();
b.put("x", true);
scriptEngine.eval("x&y", b);

我得到了错误

sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "b" is not defined. (<Unknown Source>#1) in <Unknown Source> at line number 1

是否有一个选项可以为未定义的对象评估为 null/false,例如在 JavaScript 中?

我知道一个选项是使用“this.x&this.y”而不是“x&y”,但我无法控制该字符串(用户输入)。

【问题讨论】:

    标签: java javascript scriptengine javascript-engine


    【解决方案1】:

    我浏览了一下 Rhino 代码,似乎没有这样的选项。

    最后我将附加“this”。在每个变量的前面。到目前为止,这不是一个理想的解决方案(我什至不会接受我自己的答案:)),但目前我没有其他解决方案。

    【讨论】:

      猜你喜欢
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多