如何使用napi_new_instance接口通过给定的构造函数构建一个实例?

阅读 645
1 个回答

在C++代码中,先获取传入的参数(包括构造函数和构造函数所需参数),然后调用napi_new_instance接口,传入构造函数和参数,该接口会实例化一个对象并返回。示例代码如下:

static napi_value NewInstance(napi_env env, napi_callback_info info) {
    size_t argc = 2;
    napi_value args[2] = {nullptr};
    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
    napi_value result = nullptr;
    napi_new_instance(env, args[0], 1, &args[1], &result);
    return result;
}

ArkTS侧定义一个类,然后调用该接口传入类构造函数和参数获取实例化对象,并通过日志输出对象信息(如let obj = testNapi.newInstance(Fruit, 'test'); hilog.info(0x0000, 'Node-API', 'napi_new_instance %{public}s', JSON.stringify(obj));)。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进