gpt4 book ai didi

c++ - V8 - SetAccessor 无法添加到现有模板

转载 作者:行者123 更新时间:2023-11-30 04:55:03 24 4
gpt4 key购买 nike

我有以下代码:

        while (bson_iter_next(&iter))
{
const char* key = bson_iter_key(&iter);
if (!_paths.count(key))
{
_template->SetAccessor(
String::NewFromUtf8(isolate, key),
&BSONObject::getter,
&BSONObject::setter
);
}
}

Local<Object> obj = _template->NewInstance();

我构建了一个包含文档 BSON 中所有字段的对象。我有一份文件 list ,它们都经过这段代码。我意识到如果第一个没有其他人拥有的领域,他们将不会被定义。我解释:

BSON 1 : {foo: 3}
BSON 2 : {foo: 2, boo: 4}

当我在 JS 中使用我的 getter 时,他会告诉我:

BSON 1 : {foo: 3}
BSON 2 : {foo: 2}

如何添加该字段的访问器?

最佳答案

不要对具有不同数量属性的对象使用相同的 ObjectTemplate

我可以想到两种选择;哪个更好取决于您应用的其余部分:

  • 每次都创建一个新的 Object,然后直接在那个 Object< 上调用 SetAccessor(或 CreateDataProperty?)/。不需要 ObjectTemplate

  • ObjectTemplate 上使用 SetHandler 安装一个拦截所有属性查询的处理程序。

关于c++ - V8 - SetAccessor 无法添加到现有模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53303232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com