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