napi_new_instance


napi_status napi_new_instance(napi_env env,
                              napi_value cons,
                              size_t argc,
                              napi_value* argv,
                              napi_value* result) 
  • [in] env:API 被调用时所处的环境。
  • [in] consnapi_value 表示将作为构造函数调用的 JavaScript 函数。
  • [in] argcargv 数组中的元素数量。
  • [in] argv:作为 napi_value 的 JavaScript 值数组,表示构造函数的参数。如果 argc 为零,则可以通过传入 NULL 来省略此参数。
  • [out] resultnapi_value 表示返回的 JavaScript 对象,在此情况下是构造的对象。

此方法用于使用给定的 napi_value(表示对象的构造函数)来实例化一个新的 JavaScript 值。例如,请考虑以下代码片段:

🌐 This method is used to instantiate a new JavaScript value using a given napi_value that represents the constructor for the object. For example, consider the following snippet:

function MyObject(param) {
  this.param = param;
}

const arg = 'hello';
const value = new MyObject(arg); 

可以使用以下代码片段在 Node-API 中近似计算以下内容:

🌐 The following can be approximated in Node-API using the following snippet:

// Get the constructor function MyObject
napi_value global, constructor, arg, value;
napi_status status = napi_get_global(env, &global);
if (status != napi_ok) return;

status = napi_get_named_property(env, global, "MyObject", &constructor);
if (status != napi_ok) return;

// const arg = "hello"
status = napi_create_string_utf8(env, "hello", NAPI_AUTO_LENGTH, &arg);
if (status != napi_ok) return;

napi_value* argv = &arg;
size_t argc = 1;

// const value = new MyObject(arg)
status = napi_new_instance(env, constructor, argc, argv, &value); 

如果 API 成功,则返回 napi_ok

🌐 Returns napi_ok if the API succeeded.