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

std::string script =“{函数execute(){var x = 10; return x;}}”;

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

提前致谢。

最佳答案

要评估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

然后,如果要获取返回值,则必须调用exectue函数:
"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));

关于c++ - 如何使用Spidermonkey执行用户定义的javascript代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14597178/

10-11 21:00