0

每次我想从 v8:Object 获取 C 兼容值时,我都必须执行以下操作:

Local<Object> obj = args[0]->ToObject();

obj->Get(String::New("property"))->NumberValue();

为了简化这一点,我可以使用一个助手:

obj->Get(strg("property"))->NumberValue();

Local<Value> strg(const char* str) {
    return String::New(str);
}

但这并不是真正的改进。C(++) 是否为此用例(宏?)提供工具?

如果是的话,它会是什么样子。

4

1 回答 1

1

也许是这样的:

#define PROPERTY(object, name) \
  object->Get(String::New(name))

用法:

Local<Object> obj = args[0]->ToObject();

PROPERTY(obj, "property")->NumberValue();

甚至可以做额外的快捷方式:

#define NUMBER_VALUE(object, name) \
  PROPERTY(object, name)->NumberValue()

用法:

Local<Object> obj = args[0]->ToObject();

NUMBER_VALUE(obj, "property");
于 2013-04-14T17:02:09.320 回答