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