Object.create in NodeJS
Solution 1
The second parameter should map property names to property descriptors, which are to be objects.
See the example shown at the MDN:
You could solve by using something like this:
objDef = {
prop1: {
value: "Property 1"
}
}
Solution 2
The second parameter to Object.create(proto [, propertiesObject ])
should be a property descriptor object
The property descriptor structure is described here: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty
This will create a property with a default value that can be both enumerated and modified:
Object.create(obj, {
prop1: {
configurable:true,
enumerable:true,
value:"Property 1",
writable: true
}
}
Barry Steyn
Updated on June 09, 2022Comments
-
Barry Steyn about 2 years
Object.create works differently in Nodejs compared to FireFox.
Assume an object like so:
objDef = { prop1: "Property 1" } obj = { prop2: "Property 2" } var testObj = Object.create(obj, objDef);
The above javascript works perfectly in Mozilla. It basically uses the second argument passed to Object.create to set default values.
But this does not work in Node. The error I get is
TypeError: Property description must be an object: true
.How can I get this to work in Node? I want to basically create an Object with a default value.