如何在 运行 duktape 中的构造函数时获取 class 名称?

How to get the class name when running a constructor function in duktape?

我想使用单个 duktape/C 构造函数作为此类调用的调度程序。当调度程序函数被调用时,我需要知道 class 这恰好调用了适当的 C++ 构造函数。

我想 this 绑定不会有帮助,因为它代表了我们在这里创建的(尚未完全初始化的)JS 对象。

另一个选项是当前函数,但从文档中我看不到如何从中获取 class 名称。我还能用什么?

能否详细说明 "class name" 是什么意思?您是指用作 'new' 目标的 Ecmascript 函数对象的 .name 属性 吗?

如果是,您可以使用duk_is_constructor_call()查看当前调用是否为构造函数调用,然后使用duk_push_current_function()获取对Ecmascript构造函数对象的访问权限,然后使用读取其属性通常的 属性 API 调用。例如,如果 "class name" 是指函数对象的 .name,则只需使用 duk_get_prop_string() 读取其 "name" 属性。