javascript - 如何在 V8 中公开 C++ 类成员

标签 javascript c++ v8

我想在 v8 中公开 C++ 类成员,我知道如何公开类方法,但我不知道如何公开类成员。

C++ 类:

class Person{
public:
string name;
}

Javascript:

var p1 = new Person();
p1.name = "Jack";

我想实现这个,这是可能的。谢谢!

最佳答案

您可以为 Person 原型(prototype)模板使用 SetAccessor(),将成员指针作为外部 V8 数据提供。但是你需要将 Person 的 C++ 实例包装到 V8 对象中,然后在他们的 args.This() 的访问器 getter/setter 回调中将这个 V8 对象解包回 C++ 对象

我在 v8pp 中使用这种方式图书馆。该库简化了 C++ 类和函数对 V8 的公开。对于类成员变量,它看起来像这样:

v8pp::class_<Person> Person_class(isolate);
Person_class
    // bind member variable
    .set("name", &Person::name)

关于javascript - 如何在 V8 中公开 C++ 类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39267598/

相关文章:

javascript - Angular : find parent Objects inside directives

javascript - 警报检测正常

c# - 从远程 HTML 页面调用 *.aspx 函数

c++ - 找不到资源断言文件

c++ - 在函数中过滤 vector 并返回另一个包含过滤结果的 vector

javascript - 什么时候应该让一个函数返回一个 promise ?

javascript - 在没有网络的情况下编译 V8 等

javascript - 查找最大可能时间 HH :MM by permuting four given digits

c++ - 处理超出 ASCII 范围的字符

javascript - 如何抓取 R 呈现的 JavaScript 网站?