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);