1

我有以下 javascript 代码作为字符串

std::string script = " { function execute() { var x=10; return x; } } ";

我想评估这个脚本并返回值,有什么办法吗?

提前致谢。

4

1 回答 1

3

要评估一个 JS 脚本,你需要

JSBool JS_EvaluateScript(JSContext *cx, JSObject *obj, const char *src, uintN length, const char *filename, uintN lineno, jsval *rval);

如此处所述:https ://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_EvaluateScript

然后,如果您想获取返回值,则必须调用执行函数:

"function execute(){ var x = 10; return x;} execute();"

然后评估脚本必须是const char*类型而不是std::string

评估脚本后,您可以使用 rval 获取返回值

if(JSVAL_IS_INT(rval))
  printf("The returned value is : %d\n", JSVAL_TO_INT(rval));
于 2013-04-09T01:14:14.650 回答