将参数传递给另一个函数

Pass arguments to another function

这里我给Handler分配了一个Argument:

const unsigned argc = 1;
v8::Local<v8::Value> argv[1] = { NanNew("hello world") };

NanMakeCallback(NanGetCurrentContext()->Global(), callHandle, argc, argv);

有效

但是我要给两个参数赋值! 这就是我尝试这样做的原因:

 const unsigned argc = 2;
 v8::Local<v8::Value> argv[1] = { NanNew("hello world") };
 argv[2] = { NanNew("second argument") };

 NanMakeCallback(NanGetCurrentContext()->Global(), callbackHandle, argc, argv);

但是我得到这个错误:

functions.cc:97:18: error: expected expression
  argv[2] << { NanNew("second argument") };
             ^

我做错了什么?如何分配两个参数?谢谢

您似乎正在创建一个大小为 1 的数组:

v8::Local<v8::Value> argv[1] = { NanNew("hello world") };

然后尝试将 { NanNew("second argument") }; 分配给其索引为 2 的元素。这行不通。你的意思是这样的吗:

v8::Local<v8::Value> argv[2] = { NanNew("hello world"), NanNew("second arg") };

?

您正在尝试分两步进行初始化。

int values[2] = { 0, 1 }; // OK: Array of two ints initialized with 0 and 1 respectively

int values[2] = { 0 }; // OK: Array of two ints, first value initialized with 0
values[1]= { 1 }; // Error: This is not an initialization

{ } 语法仅用于数组的初始化。 (当然还有函数体等)

在你的情况下,你可能想要这样做

v8::Local<v8::Value> argv[2] = { NanNew("hello world") , NanNew("second argument") };

请注意,您之前试图创建一个只有 1 个元素 argv[1] 的数组,并试图访问第三个元素 argv[2] = ...

索引从 0 开始,因此有效索引范围为 0 到 N-1。