18c339a94Sopenharmony_ci# CallbackInfo
28c339a94Sopenharmony_ci
38c339a94Sopenharmony_ciThe object representing the components of the JavaScript request being made.
48c339a94Sopenharmony_ci
58c339a94Sopenharmony_ciThe `Napi::CallbackInfo` object is usually created and passed by the Node.js runtime or node-addon-api infrastructure.
68c339a94Sopenharmony_ci
78c339a94Sopenharmony_ciThe `Napi::CallbackInfo` object contains the arguments passed by the caller. The number of arguments is returned by the `Length` method. Each individual argument can be accessed using the `operator[]` method.
88c339a94Sopenharmony_ci
98c339a94Sopenharmony_ciThe `SetData` and `Data` methods are used to set and retrieve the data pointer contained in the `Napi::CallbackInfo` object.
108c339a94Sopenharmony_ci
118c339a94Sopenharmony_ci## Methods
128c339a94Sopenharmony_ci
138c339a94Sopenharmony_ci### Constructor
148c339a94Sopenharmony_ci
158c339a94Sopenharmony_ci```cpp
168c339a94Sopenharmony_ciNapi::CallbackInfo::CallbackInfo(napi_env env, napi_callback_info info);
178c339a94Sopenharmony_ci```
188c339a94Sopenharmony_ci
198c339a94Sopenharmony_ci- `[in] env`: The `napi_env` environment in which to construct the `Napi::CallbackInfo` object.
208c339a94Sopenharmony_ci- `[in] info`: The `napi_callback_info` data structure from which to construct the `Napi::CallbackInfo` object.
218c339a94Sopenharmony_ci
228c339a94Sopenharmony_ci### Env
238c339a94Sopenharmony_ci
248c339a94Sopenharmony_ci```cpp
258c339a94Sopenharmony_ciNapi::Env Napi::CallbackInfo::Env() const;
268c339a94Sopenharmony_ci```
278c339a94Sopenharmony_ci
288c339a94Sopenharmony_ciReturns the `Env` object in which the request is being made.
298c339a94Sopenharmony_ci
308c339a94Sopenharmony_ci### NewTarget
318c339a94Sopenharmony_ci
328c339a94Sopenharmony_ci```cpp
338c339a94Sopenharmony_ciNapi::Value Napi::CallbackInfo::NewTarget() const;
348c339a94Sopenharmony_ci```
358c339a94Sopenharmony_ci
368c339a94Sopenharmony_ciReturns the `new.target` value of the constructor call. If the function that was invoked (and for which the `Napi::NCallbackInfo` was passed) is not a constructor call, a call to `IsEmpty()` on the returned value returns true.
378c339a94Sopenharmony_ci
388c339a94Sopenharmony_ci### IsConstructCall
398c339a94Sopenharmony_ci
408c339a94Sopenharmony_ci```cpp
418c339a94Sopenharmony_cibool Napi::CallbackInfo::IsConstructCall() const;
428c339a94Sopenharmony_ci```
438c339a94Sopenharmony_ci
448c339a94Sopenharmony_ciReturns a `bool` indicating if the function that was invoked (and for which the `Napi::CallbackInfo` was passed) is a constructor call.
458c339a94Sopenharmony_ci
468c339a94Sopenharmony_ci### Length
478c339a94Sopenharmony_ci
488c339a94Sopenharmony_ci```cpp
498c339a94Sopenharmony_cisize_t Napi::CallbackInfo::Length() const;
508c339a94Sopenharmony_ci```
518c339a94Sopenharmony_ci
528c339a94Sopenharmony_ciReturns the number of arguments passed in the `Napi::CallbackInfo` object.
538c339a94Sopenharmony_ci
548c339a94Sopenharmony_ci### operator []
558c339a94Sopenharmony_ci
568c339a94Sopenharmony_ci```cpp
578c339a94Sopenharmony_ciconst Napi::Value operator [](size_t index) const;
588c339a94Sopenharmony_ci```
598c339a94Sopenharmony_ci
608c339a94Sopenharmony_ci- `[in] index`: The zero-based index of the requested argument.
618c339a94Sopenharmony_ci
628c339a94Sopenharmony_ciReturns a `Napi::Value` object containing the requested argument.
638c339a94Sopenharmony_ci
648c339a94Sopenharmony_ci### This
658c339a94Sopenharmony_ci
668c339a94Sopenharmony_ci```cpp
678c339a94Sopenharmony_ciNapi::Value Napi::CallbackInfo::This() const;
688c339a94Sopenharmony_ci```
698c339a94Sopenharmony_ci
708c339a94Sopenharmony_ciReturns the JavaScript `this` value for the call
718c339a94Sopenharmony_ci
728c339a94Sopenharmony_ci### Data
738c339a94Sopenharmony_ci
748c339a94Sopenharmony_ci```cpp
758c339a94Sopenharmony_civoid* Napi::CallbackInfo::Data() const;
768c339a94Sopenharmony_ci```
778c339a94Sopenharmony_ci
788c339a94Sopenharmony_ciReturns the data pointer for the callback.
798c339a94Sopenharmony_ci
808c339a94Sopenharmony_ci### SetData
818c339a94Sopenharmony_ci
828c339a94Sopenharmony_ci```cpp
838c339a94Sopenharmony_civoid Napi::CallbackInfo::SetData(void* data);
848c339a94Sopenharmony_ci```
858c339a94Sopenharmony_ci
868c339a94Sopenharmony_ci- `[in] data`: The new data pointer to associate with this `Napi::CallbackInfo` object.
878c339a94Sopenharmony_ci
888c339a94Sopenharmony_ciReturns `void`.
898c339a94Sopenharmony_ci
908c339a94Sopenharmony_ci### Not documented here
918c339a94Sopenharmony_ci
928c339a94Sopenharmony_ci```cpp
938c339a94Sopenharmony_ciNapi::CallbackInfo::~CallbackInfo();
948c339a94Sopenharmony_ci// Disallow copying to prevent multiple free of _dynamicArgs
958c339a94Sopenharmony_ciNapi::CallbackInfo::CallbackInfo(CallbackInfo const &) = delete;
968c339a94Sopenharmony_civoid Napi::CallbackInfo::operator=(CallbackInfo const &) = delete;
978c339a94Sopenharmony_ci```
98