Define multiple non-enumerable properties at once.
See: define-properties
Define multiple non-enumerable properties at once.
Uses Object.defineProperty when available; falls back to standard
assignment in older engines. Existing properties are not overridden.
Accepts a map of property names to a predicate that, when true,
force-overrides.
Kind: static method of define-properties-x
| Param | Type | Description |
|---|---|---|
| object | Object |
The object on which to define the property. |
| map | Object |
The object of properties. |
| [predicates] | Object |
The object of property predicates. |
Example
import * as define from 'define-properties-x';
define.properties(
{
a: 1,
b: 2,
},
{
a: function() {
return false;
},
b: function() {
return true;
},
},
);Just like properties but for defining a single non-enumerable
property. Useful in environments that do not
support Computed property names. This can be done
with properties, but this method can read a little cleaner.
Kind: static method of define-properties-x
| Param | Type | Default | Description |
|---|---|---|---|
| object | Object |
The object on which to define the property. | |
| prop | string | Symbol |
The property name. | |
| value | * |
The value of the property. | |
| [force] | boolean |
false |
If true then set property regardless. |
Example
import * as define from 'define-properties-x';
const myString = 'something';
define.property(obj, Symbol.iterator, function() {}, true);
define.property(obj, myString, function() {}, true);