我使用node.js一段时间了,现在我需要编写一个附加组件,但我是c ++的新手。
在node.js中的我可以将可选参数传递给function,并检查它们的类型。
function hello(arg, options, callback){
if(!callback){
if(typeof options === 'function'){
callback = options;
options = {};
}
}
console.log(typeof arg);
}
但是在插件中。
Handle<Value> hello(const Arguments &args) {
HandleScope scope;
printf("%d\n", args.Length());
// how to check type of args[i]
return String::New("world");
}
答案 0 :(得分:2)
您应该在http://v8.googlecode.com/svn/trunk/include/v8.h中查看API。您感兴趣的大部分功能都在Value
课程上。这里有在线文档,http://bespin.cz/~ondras/html/classv8_1_1Value.html,但这看起来只是一些随机人员上传的文档版本。不确定他们是否在其他地方上线。
像这样的事情应该与你的JS片段做同样的事情。
Handle<Value> hello(const Arguments &args) {
HandleScope scope;
Local<Value> arg(args[0]);
Local<Value> options(args[1]);
Local<Value> callback(args[2]);
if (callback.equals(False())) {
if (options->IsFunction()) {
callback = options;
options = Object::New();
}
}
// ...
}