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] cons:表示要作为构造函数调用的 JavaScript 函数的napi_value。[in] argc:argv数组中元素的数量。[in] argv:作为napi_value的 JavaScript 值数组,表示构造函数的参数。如果argc为零,则可以通过传入NULL来省略此参数。[out] result:表示返回的 JavaScript 对象的napi_value,在本例中是构造的对象。
此方法用于使用给定的 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.】