我正在为 v8 编写一个 c++ 扩展,并希望将一个 Array 对象传递给它。我看到传入的参数可以通过 IsArray() 进行测试,但没有 ToArray()。
你如何访问它的长度,并通过数字索引请求元素?
Handle<Value> MyExtension(const Arguments& args)
{
Handle<Value> v = args[0];
if(v->IsArray())
{
// convert to array, find its length, and access its members by index... ?
}
...
}
这里一定遗漏了一些明显的东西。 Object 可以返回它的所有属性,但这并不是我所希望的。有没有办法把它作为一个数组?
感谢阅读。
最佳答案
您应该使用句柄的 Cast
方法将其转换为不同的类型:
v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(v);
关于javascript - 如何将 v8 值转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707167/