C函数:
void foo(int* p){
*p = 10;
}
然后js调用:
var a = 0;
foo(a);
console.log(a);//expect a to be 10
答案 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 ++方面,只需修改传入对象的相应属性即可。