首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将参数传递给javascript函数

将参数传递给javascript函数
EN

Stack Overflow用户
提问于 2012-05-21 11:39:21
回答 1查看 3.3K关注 0票数 1

所以交易是这样的:我读了这篇文章,并开始尝试使用犀牛。到目前为止,我已经了解了如何调用一个函数,以及如何获得它的返回。我不能做的是传递函数的参数。这是我的密码:

代码语言:javascript
复制
ScriptEngineManager engineMgr = new ScriptEngineManager();
ScriptEngine engine = engineMgr.getEngineByName("ECMAScript");

String js = "";
js += "function add(a, b) {";
js += " var sum = parseFloat(a) + parseFloat(b);";
js += " println(sum);";
js += "}";

engine.put("a", 3);
engine.put("b", 5);

Object returnn = null;
try {
    engine.eval(js);

    Invocable invocableEngine = (Invocable) engine;
    returnn = invocableEngine.invokeFunction("add");
} catch (ScriptException e) {
    System.out.println("Script error.");
} catch (NoSuchMethodException e) {
    System.out.println("Method error.");
}

System.out.println(returnn);

我没有任何例外,但返回作为NaN回来。我尝试打印a和b(参数),它们总是以null的形式出现。如果这不是调用函数的最佳方式,请向我指出一些有用的线程。(我自己找不到)

预告

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-21 11:53:58

这对我来说很管用:

代码语言:javascript
复制
Object params[] = {1,2,3};
Invocable invocable = (Invocable) script.getEngine();
invocable.invokeFunction("myFunction", params);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10684536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档