【发布时间】:2018-12-02 14:23:54
【问题描述】:
C 函数:
void foo(int* p){
*p = 10;
}
和js调用:
var a = 0;
foo(a);
console.log(a);//expect a to be 10
【问题讨论】:
标签: v8 embedded-v8
C 函数:
void foo(int* p){
*p = 10;
}
和js调用:
var a = 0;
foo(a);
console.log(a);//expect a to be 10
【问题讨论】:
标签: v8 embedded-v8
在 JavaScript 中无法为原始类型设置外参数,而 V8 的 API 非常努力地不创建与 JavaScript 不一致的行为,因为那样会很奇怪。
另一种解决方案是将字段嵌入对象中:
var a = {value: 0}
foo(a);
console.log(a.value); // This can be made to print 10.
通过这种方法,您可以通过 V8 的 API 使用常规方式绑定函数,并且在 C++ 端只需修改传入对象的相应属性。
【讨论】: