spidermonkey无法调用JS自定义函数

OSC首席过客 发布于 2014/04/09 01:27
阅读 409
收藏 0

我想调用某一个函数,需要如何写代码?给个示例,我网上查了很多资料,没有说具体如何调用某一个函数的,

我如下的代码,我觉得还缺少了一些语句,求大神帮助,解决此问题

调用C:

JSRuntime *runtime; 
    JSContext *context; 
    JSObject *global; 

	 // 创建新的运行时 8M 
    runtime = JS_NewRuntime(8L * 1024L * 1024L); 
    if (runtime == NULL){ 
        return -1; 
    } 

	 // 创建新的上下文
    context = JS_NewContext(runtime, 8*1024); 
    if (context == NULL){ 
        return -1; 
    } 

	 // 
    JS_SetOptions(context, JSOPTION_VAROBJFIX); 
    // 设置错误回调函数 , report_error 函数定义如上
	 JS_SetErrorReporter(context, report_error); 

	 // 创建一个新的 JavaScript 对象
    global = JS_NewObject(context, &global_class, NULL, NULL); 
    if (global == NULL){ 
        return -1; 
    } 

	 // 实例化 global, 加入对象,数组等支持
    if (!JS_InitStandardClasses(context, global)){ 
        return -1; 
    } 

jsval res;
JSObject *global = JS_GetGlobalObject(context);
jsval argv[2];
JSScript *script;
JSString *jss;
//new 2 number to pass into the function "add" in script 
JS_NewNumberValue(context, 18.5, &res);
argv[0] = res;
JS_NewNumberValue(context, 23.1, &res);
argv[1] = res;
JSBool status=JS_CallFunctionName(context, global, "add", 2, argv, &res);
jsdouble d;
JS_ValueToNumber(context, res, &d);
printf("add result = %f\n", d);




调用JS:

function add(x, y){ 
    return x + y; 
 }




加载中
返回顶部
顶部