2011-12-18 3 views
1

Я использую node.js какое-то время, теперь мне нужно написать надстройку, но я новыйb C++.как проверка надстройки node.js Типы аргументов

in node.js Я могу передать необязательные аргументы функции и проверить их типы.

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"); 
} 

ответ

2

Вы должны изучить API в http://v8.googlecode.com/svn/trunk/include/v8.h. Большинство функций, которые вас интересуют, относятся к классу 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(); 
    } 
    } 

    // ... 
} 
+0

очень приятно, спасибо большое –

Смежные вопросы