javascript - 在 JavaScript V8 回调中访问 'Arguments'

标签 javascript c++ v8

我希望能够访问回调的 Arguments& args。现在,当我将 C++ 函数设置为从 JavaScript 端调用时,它看起来像这样:

global->Set(String::New("login"), FunctionTemplate::New(Login));

C++函数的原型(prototype)是:

Handle<Value> MyClass::Login(const Arguments& args)

如何访问此 Arguments& args 以便在回调发生时传入变量?感谢您的帮助。

最佳答案

v8::Arguments::Length() 将返回从 JavaScript 传递的参数数量。 v8::Arguments& 变量使用数组下标访问。

for (int32_t index = 0; index < arguments->Length(); ++index) {
  if (arguments[index]->IsString()) {
    ::printf("%s\n", *v8::String::Utf8Value(arguments[index]->ToString()));
  }
}

您可以在 http://izs.me/v8-docs/classv8_1_1Arguments.html 找到在线版本的 v8::Arguments 文档。 ,但是我不保证它是最新的或将保持在线状态。

从 V8 源代码树的顶部运行以下命令将使用 doxygen 在本地生成文档.

$ cd include && doxygen -g && doxygen

如果 doxygen 成功执行,您可以访问 include/html/index.html 中的文档。

关于javascript - 在 JavaScript V8 回调中访问 'Arguments',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6740353/

相关文章:

c# - 如何定义通用/模板化类,如下面的 C# 示例

javascript - 为什么 array.prototype.slice() 在子类数组上这么慢?

javascript - 检查 html 文件是否会打开 JavaScript 警报对话框

while循环中的Javascript同步超时

javascript - react 属性

node.js - 为什么空对象比非空对象占用更多内存?

javascript - Node.js 阻塞性质

javascript - 不要在循环错误中创建函数,我无法修复

c++ - GCC 链接错误 "__wcsrtombs: Zusicherung »data.__outbuf[-1] == '\0'« nicht erfüllt"

c++ - +[](){} 有什么不同;和 (+[](){});以及为什么表达式有效