如何在v8中将没有参数的c函数绑定?

时间:2018-12-02 14:23:55

标签: v8 embedded-v8

C函数:

void foo(int* p){
    *p = 10;
}

然后js调用:

var a = 0;
foo(a);
console.log(a);//expect a to be 10

1 个答案:

答案 0 :(得分:3)

JavaScript中没有方法可以为原始类型设置参数,而V8的API会尽力避免创建与JavaScript不一致的行为,因为那样会很奇怪。

另一种解决方案是将字段嵌入对象中

var a = {value: 0}
foo(a);
console.log(a.value);  // This can be made to print 10.

使用这种方法,您可以通过V8的API使用常规的绑定函数的方式,而在C ++方面,只需修改传入对象的相应属性即可。