【问题标题】:TypeError: Cannot find function blah inTypeError:找不到函数blah in
【发布时间】:2011-06-14 15:37:21
【问题描述】:

我正在使用 javax.script 中的 JavaScript 支持对 JS 脚本进行一些基本的单元测试,但遇到了问题。

我有一些代码eval(...)s 是我在 ScriptEngine 实例中拥有的先决条件库文件,包括其中包含我的函数 blah 的那个。

然后我在 ScriptEngine 的同一实例中评估另一个文件,其中我有一些用作测试的函数,然后我调用测试。

但是,尽管所有 eval 都正常工作,但我收到一个错误,提示加载函数时出现问题。

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot find function blah. (<Unknown source>#x) in <Unknown source> at line number x

【问题讨论】:

    标签: java javascript unit-testing


    【解决方案1】:

    两个单独的eval 调用同一个ScriptEngine 对我有用。您是设置一个新的ScriptContext 还是取消您对blah 的定义?

    public class TryScripting {
        public static void main(String[] args) throws ScriptException {
        ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
        String makeFun = "function  hello() {\n" +
                "return \"hello world\";\n" +
                "}\n" +
                "{\n" +
                "}";
        engine.eval(makeFun);
    
        engine.eval("myVar = hello()");
        ret = engine.get("myVar");
        System.out.println(ret);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 2015-02-15
      • 2015-09-27
      • 2018-03-31
      • 1970-01-01
      相关资源
      最近更新 更多