18c339a94Sopenharmony_ci# Object 28c339a94Sopenharmony_ci 38c339a94Sopenharmony_ciClass `Napi::Object` inherits from class [`Napi::TypeTaggable`][]. 48c339a94Sopenharmony_ci 58c339a94Sopenharmony_ciThe `Napi::Object` class corresponds to a JavaScript object. It is extended by the following node-addon-api classes that you may use when working with more specific types: 68c339a94Sopenharmony_ci 78c339a94Sopenharmony_ci- [`Napi::Array`](array.md) 88c339a94Sopenharmony_ci- [`Napi::ArrayBuffer`](array_buffer.md) 98c339a94Sopenharmony_ci- [`Napi::Buffer<T>`](buffer.md) 108c339a94Sopenharmony_ci- [`Napi::Function`](function.md) 118c339a94Sopenharmony_ci- [`Napi::TypedArray`](typed_array.md). 128c339a94Sopenharmony_ci 138c339a94Sopenharmony_ciThis class provides a number of convenience methods, most of which are used to set or get properties on a JavaScript object. For example, Set() and Get(). 148c339a94Sopenharmony_ci 158c339a94Sopenharmony_ci## Example 168c339a94Sopenharmony_ci```cpp 178c339a94Sopenharmony_ci#include <napi.h> 188c339a94Sopenharmony_ci 198c339a94Sopenharmony_ciusing namespace Napi; 208c339a94Sopenharmony_ci 218c339a94Sopenharmony_ciVoid Init(Env env) { 228c339a94Sopenharmony_ci 238c339a94Sopenharmony_ci // Create a new instance 248c339a94Sopenharmony_ci Object obj = Object::New(env); 258c339a94Sopenharmony_ci 268c339a94Sopenharmony_ci // Assign values to properties 278c339a94Sopenharmony_ci obj.Set("hello", "world"); 288c339a94Sopenharmony_ci obj.Set(uint32_t(42), "The Answer to Life, the Universe, and Everything"); 298c339a94Sopenharmony_ci obj.Set("Douglas Adams", true); 308c339a94Sopenharmony_ci 318c339a94Sopenharmony_ci // Get properties 328c339a94Sopenharmony_ci Value val1 = obj.Get("hello"); 338c339a94Sopenharmony_ci Value val2 = obj.Get(uint32_t(42)); 348c339a94Sopenharmony_ci Value val3 = obj.Get("Douglas Adams"); 358c339a94Sopenharmony_ci 368c339a94Sopenharmony_ci // Test if objects have properties. 378c339a94Sopenharmony_ci bool obj1 = obj.Has("hello"); // true 388c339a94Sopenharmony_ci bool obj2 = obj.Has("world"); // false 398c339a94Sopenharmony_ci 408c339a94Sopenharmony_ci} 418c339a94Sopenharmony_ci``` 428c339a94Sopenharmony_ci 438c339a94Sopenharmony_ci## Methods 448c339a94Sopenharmony_ci 458c339a94Sopenharmony_ci### Empty Constructor 468c339a94Sopenharmony_ci 478c339a94Sopenharmony_ci```cpp 488c339a94Sopenharmony_ciNapi::Object::Object(); 498c339a94Sopenharmony_ci``` 508c339a94Sopenharmony_ciCreates a new empty Object instance. 518c339a94Sopenharmony_ci 528c339a94Sopenharmony_ci### Constructor 538c339a94Sopenharmony_ci 548c339a94Sopenharmony_ci```cpp 558c339a94Sopenharmony_ciNapi::Object::Object(napi_env env, napi_value value); 568c339a94Sopenharmony_ci``` 578c339a94Sopenharmony_ci- `[in] env`: The `napi_env` environment in which to construct the Value object. 588c339a94Sopenharmony_ci 598c339a94Sopenharmony_ci- `[in] value`: The `napi_value` which is a handle for a JavaScript object. 608c339a94Sopenharmony_ci 618c339a94Sopenharmony_ciCreates a non-empty `Napi::Object` instance. 628c339a94Sopenharmony_ci 638c339a94Sopenharmony_ci### New() 648c339a94Sopenharmony_ci 658c339a94Sopenharmony_ci```cpp 668c339a94Sopenharmony_ciNapi::Object Napi::Object::New(napi_env env); 678c339a94Sopenharmony_ci``` 688c339a94Sopenharmony_ci- `[in] env`: The `napi_env` environment in which to construct the `Napi::Value` object. 698c339a94Sopenharmony_ci 708c339a94Sopenharmony_ciCreates a new `Napi::Object` value. 718c339a94Sopenharmony_ci 728c339a94Sopenharmony_ci### Set() 738c339a94Sopenharmony_ci 748c339a94Sopenharmony_ci```cpp 758c339a94Sopenharmony_cibool Napi::Object::Set (____ key, ____ value) const; 768c339a94Sopenharmony_ci``` 778c339a94Sopenharmony_ci- `[in] key`: The name for the property being assigned. 788c339a94Sopenharmony_ci- `[in] value`: The value being assigned to the property. 798c339a94Sopenharmony_ci 808c339a94Sopenharmony_ciAdd a property with the specified key with the specified value to the object. 818c339a94Sopenharmony_ci 828c339a94Sopenharmony_ciThe key can be any of the following types: 838c339a94Sopenharmony_ci- `napi_value` 848c339a94Sopenharmony_ci- [`Napi::Value`](value.md) 858c339a94Sopenharmony_ci- `const char*` 868c339a94Sopenharmony_ci- `const std::string&` 878c339a94Sopenharmony_ci- `uint32_t` 888c339a94Sopenharmony_ci 898c339a94Sopenharmony_ciThe `value` can be of any type that is accepted by [`Napi::Value::From`][]. 908c339a94Sopenharmony_ci 918c339a94Sopenharmony_ci### Delete() 928c339a94Sopenharmony_ci 938c339a94Sopenharmony_ci```cpp 948c339a94Sopenharmony_cibool Napi::Object::Delete(____ key) const; 958c339a94Sopenharmony_ci``` 968c339a94Sopenharmony_ci- `[in] key`: The name of the property to delete. 978c339a94Sopenharmony_ci 988c339a94Sopenharmony_ciDeletes the property associated with the given key. Returns `true` if the property was deleted. 998c339a94Sopenharmony_ci 1008c339a94Sopenharmony_ciThe `key` can be any of the following types: 1018c339a94Sopenharmony_ci- `napi_value` 1028c339a94Sopenharmony_ci- [`Napi::Value`](value.md) 1038c339a94Sopenharmony_ci- `const char *` 1048c339a94Sopenharmony_ci- `const std::string &` 1058c339a94Sopenharmony_ci- `uint32_t` 1068c339a94Sopenharmony_ci 1078c339a94Sopenharmony_ci### Get() 1088c339a94Sopenharmony_ci 1098c339a94Sopenharmony_ci```cpp 1108c339a94Sopenharmony_ciNapi::Value Napi::Object::Get(____ key); 1118c339a94Sopenharmony_ci``` 1128c339a94Sopenharmony_ci- `[in] key`: The name of the property to return the value for. 1138c339a94Sopenharmony_ci 1148c339a94Sopenharmony_ciReturns the [`Napi::Value`](value.md) associated with the key property. Returns the value *undefined* if the key does not exist. 1158c339a94Sopenharmony_ci 1168c339a94Sopenharmony_ciThe `key` can be any of the following types: 1178c339a94Sopenharmony_ci- `napi_value` 1188c339a94Sopenharmony_ci- [`Napi::Value`](value.md) 1198c339a94Sopenharmony_ci- `const char *` 1208c339a94Sopenharmony_ci- `const std::string &` 1218c339a94Sopenharmony_ci- `uint32_t` 1228c339a94Sopenharmony_ci 1238c339a94Sopenharmony_ci### Has() 1248c339a94Sopenharmony_ci 1258c339a94Sopenharmony_ci```cpp 1268c339a94Sopenharmony_cibool Napi::Object::Has (____ key) const; 1278c339a94Sopenharmony_ci``` 1288c339a94Sopenharmony_ci- `[in] key`: The name of the property to check. 1298c339a94Sopenharmony_ci 1308c339a94Sopenharmony_ciReturns a `bool` that is *true* if the object has a property named `key` and *false* otherwise. 1318c339a94Sopenharmony_ci 1328c339a94Sopenharmony_ci### InstanceOf() 1338c339a94Sopenharmony_ci 1348c339a94Sopenharmony_ci```cpp 1358c339a94Sopenharmony_cibool Napi::Object::InstanceOf (const Function& constructor) const 1368c339a94Sopenharmony_ci``` 1378c339a94Sopenharmony_ci- `[in] constructor`: The constructor [`Napi::Function`](function.md) of the value that is being compared with the object. 1388c339a94Sopenharmony_ci 1398c339a94Sopenharmony_ciReturns a `bool` that is true if the `Napi::Object` is an instance created by the `constructor` and false otherwise. 1408c339a94Sopenharmony_ci 1418c339a94Sopenharmony_ciNote: This is equivalent to the JavaScript instanceof operator. 1428c339a94Sopenharmony_ci 1438c339a94Sopenharmony_ci### AddFinalizer() 1448c339a94Sopenharmony_ci```cpp 1458c339a94Sopenharmony_citemplate <typename Finalizer, typename T> 1468c339a94Sopenharmony_ciinline void AddFinalizer(Finalizer finalizeCallback, T* data) const; 1478c339a94Sopenharmony_ci``` 1488c339a94Sopenharmony_ci 1498c339a94Sopenharmony_ci- `[in] finalizeCallback`: The function to call when the object is garbage-collected. 1508c339a94Sopenharmony_ci- `[in] data`: The data to associate with the object. 1518c339a94Sopenharmony_ci 1528c339a94Sopenharmony_ciAssociates `data` with the object, calling `finalizeCallback` when the object is garbage-collected. `finalizeCallback` 1538c339a94Sopenharmony_cihas the signature 1548c339a94Sopenharmony_ci```cpp 1558c339a94Sopenharmony_civoid finalizeCallback(Napi::Env env, T* data); 1568c339a94Sopenharmony_ci``` 1578c339a94Sopenharmony_ciwhere `data` is the pointer that was passed into the call to `AddFinalizer()`. 1588c339a94Sopenharmony_ci 1598c339a94Sopenharmony_ci### AddFinalizer() 1608c339a94Sopenharmony_ci```cpp 1618c339a94Sopenharmony_citemplate <typename Finalizer, typename T, typename Hint> 1628c339a94Sopenharmony_ciinline void AddFinalizer(Finalizer finalizeCallback, 1638c339a94Sopenharmony_ci T* data, 1648c339a94Sopenharmony_ci Hint* finalizeHint) const; 1658c339a94Sopenharmony_ci``` 1668c339a94Sopenharmony_ci 1678c339a94Sopenharmony_ci- `[in] data`: The data to associate with the object. 1688c339a94Sopenharmony_ci- `[in] finalizeCallback`: The function to call when the object is garbage-collected. 1698c339a94Sopenharmony_ci 1708c339a94Sopenharmony_ciAssociates `data` with the object, calling `finalizeCallback` when the object is garbage-collected. An additional hint 1718c339a94Sopenharmony_cimay be given. It will also be passed to `finalizeCallback`, which has the signature 1728c339a94Sopenharmony_ci```cpp 1738c339a94Sopenharmony_civoid finalizeCallback(Napi::Env env, T* data, Hint* hint); 1748c339a94Sopenharmony_ci``` 1758c339a94Sopenharmony_ciwhere `data` and `hint` are the pointers that were passed into the call to `AddFinalizer()`. 1768c339a94Sopenharmony_ci 1778c339a94Sopenharmony_ci### GetPropertyNames() 1788c339a94Sopenharmony_ci```cpp 1798c339a94Sopenharmony_ciNapi::Array Napi::Object::GetPropertyNames() const; 1808c339a94Sopenharmony_ci``` 1818c339a94Sopenharmony_ci 1828c339a94Sopenharmony_ciReturns the names of the enumerable properties of the object as a [`Napi::Array`](array.md) of strings. 1838c339a94Sopenharmony_ciThe properties whose key is a `Symbol` will not be included. 1848c339a94Sopenharmony_ci 1858c339a94Sopenharmony_ci### HasOwnProperty() 1868c339a94Sopenharmony_ci```cpp 1878c339a94Sopenharmony_cibool Napi::Object::HasOwnProperty(____ key) const; 1888c339a94Sopenharmony_ci``` 1898c339a94Sopenharmony_ci- `[in] key` The name of the property to check. 1908c339a94Sopenharmony_ci 1918c339a94Sopenharmony_ciReturns a `bool` that is *true* if the object has an own property named `key` and *false* otherwise. 1928c339a94Sopenharmony_ci 1938c339a94Sopenharmony_ciThe key can be any of the following types: 1948c339a94Sopenharmony_ci- `napi_value` 1958c339a94Sopenharmony_ci- [`Napi::Value`](value.md) 1968c339a94Sopenharmony_ci- `const char*` 1978c339a94Sopenharmony_ci- `const std::string&` 1988c339a94Sopenharmony_ci- `uint32_t` 1998c339a94Sopenharmony_ci 2008c339a94Sopenharmony_ci### DefineProperty() 2018c339a94Sopenharmony_ci 2028c339a94Sopenharmony_ci```cpp 2038c339a94Sopenharmony_cibool Napi::Object::DefineProperty (const Napi::PropertyDescriptor& property) const; 2048c339a94Sopenharmony_ci``` 2058c339a94Sopenharmony_ci- `[in] property`: A [`Napi::PropertyDescriptor`](property_descriptor.md). 2068c339a94Sopenharmony_ci 2078c339a94Sopenharmony_ciDefine a property on the object. 2088c339a94Sopenharmony_ci 2098c339a94Sopenharmony_ci### DefineProperties() 2108c339a94Sopenharmony_ci 2118c339a94Sopenharmony_ci```cpp 2128c339a94Sopenharmony_cibool Napi::Object::DefineProperties (____ properties) const; 2138c339a94Sopenharmony_ci``` 2148c339a94Sopenharmony_ci- `[in] properties`: A list of [`Napi::PropertyDescriptor`](property_descriptor.md). Can be one of the following types: 2158c339a94Sopenharmony_ci - const std::initializer_list<Napi::PropertyDescriptor>& 2168c339a94Sopenharmony_ci - const std::vector<Napi::PropertyDescriptor>& 2178c339a94Sopenharmony_ci 2188c339a94Sopenharmony_ciDefines properties on the object. 2198c339a94Sopenharmony_ci 2208c339a94Sopenharmony_ci### Freeze() 2218c339a94Sopenharmony_ci 2228c339a94Sopenharmony_ci```cpp 2238c339a94Sopenharmony_civoid Napi::Object::Freeze() const; 2248c339a94Sopenharmony_ci``` 2258c339a94Sopenharmony_ci 2268c339a94Sopenharmony_ciThe `Napi::Object::Freeze()` method freezes an object. A frozen object can no 2278c339a94Sopenharmony_cilonger changed. Freezing an object prevents new properties from being added to 2288c339a94Sopenharmony_ciit, existing properties from being removed, prevents changing the 2298c339a94Sopenharmony_cienumerability, configurability, or writability of existing properties and 2308c339a94Sopenharmony_ciprevents the value of existing properties from being changed. In addition, 2318c339a94Sopenharmony_cifreezing an object also prevents its prototype from being changed. 2328c339a94Sopenharmony_ci 2338c339a94Sopenharmony_ci### Seal() 2348c339a94Sopenharmony_ci 2358c339a94Sopenharmony_ci```cpp 2368c339a94Sopenharmony_civoid Napi::Object::Seal() const; 2378c339a94Sopenharmony_ci``` 2388c339a94Sopenharmony_ci 2398c339a94Sopenharmony_ciThe `Napi::Object::Seal()` method seals an object, preventing new properties 2408c339a94Sopenharmony_cifrom being added to it and marking all existing properties as non-configurable. 2418c339a94Sopenharmony_ciValues of present properties can still be changed as long as they are 2428c339a94Sopenharmony_ciwritable. 2438c339a94Sopenharmony_ci 2448c339a94Sopenharmony_ci### operator\[\]() 2458c339a94Sopenharmony_ci 2468c339a94Sopenharmony_ci```cpp 2478c339a94Sopenharmony_ciNapi::PropertyLValue<std::string> Napi::Object::operator[] (const char* utf8name) const; 2488c339a94Sopenharmony_ci``` 2498c339a94Sopenharmony_ci- `[in] utf8name`: UTF-8 encoded null-terminated property name. 2508c339a94Sopenharmony_ci 2518c339a94Sopenharmony_ciReturns a [`Napi::Object::PropertyLValue`](propertylvalue.md) as the named 2528c339a94Sopenharmony_ciproperty or sets the named property. 2538c339a94Sopenharmony_ci 2548c339a94Sopenharmony_ci```cpp 2558c339a94Sopenharmony_ciNapi::PropertyLValue<std::string> Napi::Object::operator[] (const std::string& utf8name) const; 2568c339a94Sopenharmony_ci``` 2578c339a94Sopenharmony_ci- `[in] utf8name`: UTF-8 encoded property name. 2588c339a94Sopenharmony_ci 2598c339a94Sopenharmony_ciReturns a [`Napi::Object::PropertyLValue`](propertylvalue.md) as the named 2608c339a94Sopenharmony_ciproperty or sets the named property. 2618c339a94Sopenharmony_ci 2628c339a94Sopenharmony_ci```cpp 2638c339a94Sopenharmony_ciNapi::PropertyLValue<uint32_t> Napi::Object::operator[] (uint32_t index) const; 2648c339a94Sopenharmony_ci``` 2658c339a94Sopenharmony_ci- `[in] index`: Element index. 2668c339a94Sopenharmony_ci 2678c339a94Sopenharmony_ciReturns a [`Napi::Object::PropertyLValue`](propertylvalue.md) or sets an 2688c339a94Sopenharmony_ciindexed property or array element. 2698c339a94Sopenharmony_ci 2708c339a94Sopenharmony_ci### begin() 2718c339a94Sopenharmony_ci 2728c339a94Sopenharmony_ci```cpp 2738c339a94Sopenharmony_ciNapi::Object::iterator Napi::Object::begin() const; 2748c339a94Sopenharmony_ci``` 2758c339a94Sopenharmony_ci 2768c339a94Sopenharmony_ciReturns a constant iterator to the beginning of the object. 2778c339a94Sopenharmony_ci 2788c339a94Sopenharmony_ci```cpp 2798c339a94Sopenharmony_ciNapi::Object::iterator Napi::Object::begin(); 2808c339a94Sopenharmony_ci``` 2818c339a94Sopenharmony_ci 2828c339a94Sopenharmony_ciReturns a non constant iterator to the beginning of the object. 2838c339a94Sopenharmony_ci 2848c339a94Sopenharmony_ci### end() 2858c339a94Sopenharmony_ci 2868c339a94Sopenharmony_ci```cpp 2878c339a94Sopenharmony_ciNapi::Object::iterator Napi::Object::end() const; 2888c339a94Sopenharmony_ci``` 2898c339a94Sopenharmony_ci 2908c339a94Sopenharmony_ciReturns a constant iterator to the end of the object. 2918c339a94Sopenharmony_ci 2928c339a94Sopenharmony_ci```cpp 2938c339a94Sopenharmony_ciNapi::Object::iterator Napi::Object::end(); 2948c339a94Sopenharmony_ci``` 2958c339a94Sopenharmony_ci 2968c339a94Sopenharmony_ciReturns a non constant iterator to the end of the object. 2978c339a94Sopenharmony_ci 2988c339a94Sopenharmony_ci## Iterator 2998c339a94Sopenharmony_ci 3008c339a94Sopenharmony_ciIterators expose an `std::pair<...>`, where the `first` property is a 3018c339a94Sopenharmony_ci[`Napi::Value`](value.md) that holds the currently iterated key and the 3028c339a94Sopenharmony_ci`second` property is a [`Napi::Object::PropertyLValue`](propertylvalue.md) that 3038c339a94Sopenharmony_ciholds the currently iterated value. Iterators are only available if C++ 3048c339a94Sopenharmony_ciexceptions are enabled (by defining `NAPI_CPP_EXCEPTIONS` during the build). 3058c339a94Sopenharmony_ci 3068c339a94Sopenharmony_ci### Constant Iterator 3078c339a94Sopenharmony_ci 3088c339a94Sopenharmony_ciIn constant iterators, the iterated values are immutable. 3098c339a94Sopenharmony_ci 3108c339a94Sopenharmony_ci#### operator++() 3118c339a94Sopenharmony_ci 3128c339a94Sopenharmony_ci```cpp 3138c339a94Sopenharmony_ciinline Napi::Object::const_iterator& Napi::Object::const_iterator::operator++(); 3148c339a94Sopenharmony_ci``` 3158c339a94Sopenharmony_ci 3168c339a94Sopenharmony_ciMoves the iterator one step forward. 3178c339a94Sopenharmony_ci 3188c339a94Sopenharmony_ci#### operator== 3198c339a94Sopenharmony_ci 3208c339a94Sopenharmony_ci```cpp 3218c339a94Sopenharmony_ciinline bool Napi::Object::const_iterator::operator==(const Napi::Object::const_iterator& other) const; 3228c339a94Sopenharmony_ci``` 3238c339a94Sopenharmony_ci- `[in] other`: Another iterator to compare the current iterator to. 3248c339a94Sopenharmony_ci 3258c339a94Sopenharmony_ciReturns whether both iterators are at the same index. 3268c339a94Sopenharmony_ci 3278c339a94Sopenharmony_ci#### operator!= 3288c339a94Sopenharmony_ci 3298c339a94Sopenharmony_ci```cpp 3308c339a94Sopenharmony_ciinline bool Napi::Object::const_iterator::operator!=(const Napi::Object::const_iterator& other) const; 3318c339a94Sopenharmony_ci``` 3328c339a94Sopenharmony_ci- `[in] other`: Another iterator to compare the current iterator to. 3338c339a94Sopenharmony_ci 3348c339a94Sopenharmony_ciReturns whether both iterators are at different indices. 3358c339a94Sopenharmony_ci 3368c339a94Sopenharmony_ci#### operator*() 3378c339a94Sopenharmony_ci 3388c339a94Sopenharmony_ci```cpp 3398c339a94Sopenharmony_ciinline const std::pair<Napi::Value, Napi::Object::PropertyLValue<Napi::Value>> Napi::Object::const_iterator::operator*() const; 3408c339a94Sopenharmony_ci``` 3418c339a94Sopenharmony_ci 3428c339a94Sopenharmony_ciReturns the currently iterated key and value. 3438c339a94Sopenharmony_ci 3448c339a94Sopenharmony_ci#### Example 3458c339a94Sopenharmony_ci```cpp 3468c339a94Sopenharmony_ciValue Sum(const CallbackInfo& info) { 3478c339a94Sopenharmony_ci Object object = info[0].As<Object>(); 3488c339a94Sopenharmony_ci int64_t sum = 0; 3498c339a94Sopenharmony_ci 3508c339a94Sopenharmony_ci for (const auto& e : object) { 3518c339a94Sopenharmony_ci sum += static_cast<Value>(e.second).As<Number>().Int64Value(); 3528c339a94Sopenharmony_ci } 3538c339a94Sopenharmony_ci 3548c339a94Sopenharmony_ci return Number::New(info.Env(), sum); 3558c339a94Sopenharmony_ci} 3568c339a94Sopenharmony_ci``` 3578c339a94Sopenharmony_ci 3588c339a94Sopenharmony_ci### Non Constant Iterator 3598c339a94Sopenharmony_ci 3608c339a94Sopenharmony_ciIn non constant iterators, the iterated values are mutable. 3618c339a94Sopenharmony_ci 3628c339a94Sopenharmony_ci#### operator++() 3638c339a94Sopenharmony_ci 3648c339a94Sopenharmony_ci```cpp 3658c339a94Sopenharmony_ciinline Napi::Object::iterator& Napi::Object::iterator::operator++(); 3668c339a94Sopenharmony_ci``` 3678c339a94Sopenharmony_ci 3688c339a94Sopenharmony_ciMoves the iterator one step forward. 3698c339a94Sopenharmony_ci 3708c339a94Sopenharmony_ci#### operator== 3718c339a94Sopenharmony_ci 3728c339a94Sopenharmony_ci```cpp 3738c339a94Sopenharmony_ciinline bool Napi::Object::iterator::operator==(const Napi::Object::iterator& other) const; 3748c339a94Sopenharmony_ci``` 3758c339a94Sopenharmony_ci- `[in] other`: Another iterator to compare the current iterator to. 3768c339a94Sopenharmony_ci 3778c339a94Sopenharmony_ciReturns whether both iterators are at the same index. 3788c339a94Sopenharmony_ci 3798c339a94Sopenharmony_ci#### operator!= 3808c339a94Sopenharmony_ci 3818c339a94Sopenharmony_ci```cpp 3828c339a94Sopenharmony_ciinline bool Napi::Object::iterator::operator!=(const Napi::Object::iterator& other) const; 3838c339a94Sopenharmony_ci``` 3848c339a94Sopenharmony_ci- `[in] other`: Another iterator to compare the current iterator to. 3858c339a94Sopenharmony_ci 3868c339a94Sopenharmony_ciReturns whether both iterators are at different indices. 3878c339a94Sopenharmony_ci 3888c339a94Sopenharmony_ci#### operator*() 3898c339a94Sopenharmony_ci 3908c339a94Sopenharmony_ci```cpp 3918c339a94Sopenharmony_ciinline std::pair<Napi::Value, Napi::Object::PropertyLValue<Napi::Value>> Napi::Object::iterator::operator*(); 3928c339a94Sopenharmony_ci``` 3938c339a94Sopenharmony_ci 3948c339a94Sopenharmony_ciReturns the currently iterated key and value. 3958c339a94Sopenharmony_ci 3968c339a94Sopenharmony_ci#### Example 3978c339a94Sopenharmony_ci```cpp 3988c339a94Sopenharmony_civoid Increment(const CallbackInfo& info) { 3998c339a94Sopenharmony_ci Env env = info.Env(); 4008c339a94Sopenharmony_ci Object object = info[0].As<Object>(); 4018c339a94Sopenharmony_ci 4028c339a94Sopenharmony_ci for (auto e : object) { 4038c339a94Sopenharmony_ci int64_t value = static_cast<Value>(e.second).As<Number>().Int64Value(); 4048c339a94Sopenharmony_ci ++value; 4058c339a94Sopenharmony_ci e.second = Napi::Number::New(env, value); 4068c339a94Sopenharmony_ci } 4078c339a94Sopenharmony_ci} 4088c339a94Sopenharmony_ci``` 4098c339a94Sopenharmony_ci 4108c339a94Sopenharmony_ci[`Napi::TypeTaggable`]: ./type_taggable.md 4118c339a94Sopenharmony_ci[`Napi::Value::From`]: ./value.md#from 412