JS: Object.create
Object.create
The most general way to create a object. It lets you specify its parent object, and also specify the new object's properties, and each property's attributes.
Object.create(xParent)-
Return a new empty object such that its parent is xParent.
const aa = { pp: 7 }; // create bb, with parent aa const bb = Object.create(aa); // bb's prototype is aa console.assert(Reflect.getPrototypeOf(bb) === aa); Object.create(xParent, {k1:descriptor_1, k2:descriptor_2, etc})-
- Return a new object such that its parent is xParent.
- Also defines the new object's properties and their attributes.
- descriptor_n are Property Descriptor.
// create a object with specific parent, properties, and property attributes const aa = { aap: 1 }; const bb = Object.create(aa, { "bbp": { value: 2, writable: true, enumerable: true, configurable: true } }); // property aap is from object aa console.assert(bb.aap === 1); console.assert(bb.bbp === 2);
Example. Create object with no parent
// create a object with no parent const xx = Object.create(null); console.log(xx); // [Object: null prototype] {}
Example. Create object with getter and setter
// define getter and setter properties using Object.create const jj = Object.create( Object.prototype, { "a": { get: function () { console.log("getter called"); }, }, "b": { set: function (x) { console.log("setter called with arg " + x); }, }, }, ); jj.a; // prints // getter called jj.b = 3; // prints // setter called with arg 3
JavaScript. Object and Inheritance
- JS: Object (basics)
- JS: Object Overview
- JS: Object Type
- JS: Test is Object Type 📜
- JS: Determine Type of Object
- JS: Prototype and Inheritance
- JS: Prototype Chain
- JS: Object.prototype.isPrototypeOf
- JS: Get Set Prototype
- JS: Show Prototype Chain 📜
- JS: Prototype Tree
- JS: Dot Notation and Prototype Chain
- JS: Create Object
- JS: Object Literal Expression
- JS: Object.create
- JS: Object Literal Expression vs Object.Create
- JS: Create Object with Parent X
- JS: Prevent Adding Property
- JS: Deep Copy Array or Object 📜
- JS: Test Equality of Array and Object by Content 📜
- JS: Add Method to Prototype
- JS: Object (class)
- JS: Object Constructor
- JS: Object.prototype
JavaScript. Define Properties and attributes.
- JS: Property Attributes
- JS: Enumerable Property
- JS: Property Descriptor
- JS: Object.create
- JS: Object.defineProperty ❌
- JS: Reflect.defineProperty
- JS: Object.defineProperties
- JS: Object.prototype.propertyIsEnumerable ❌
- JS: Object.getOwnPropertyDescriptor ❌
- JS: Reflect.getOwnPropertyDescriptor
- JS: Object.getOwnPropertyDescriptors