JS: How to Use Object.create() to Emulate Constructor?

By Xah Lee. Date: . Last updated: .

How to use Object.create() to emulate constructor?

Here's the answer.

// using Object.create to emulate constructor

const dad = {"a":3};

// constructor version
const F1 = function (x) {this.y = x;};
F1.prototype = dad;

// Object.Create version
const F2 = function (x) {
    return Object.create(
        {"y":{value: x,writable: true, enumerable: true, configurable: true}});

const o1 = new F1(4);
const o2 = F2(4);

// --------------------------------------------------
// test

Object.getPrototypeOf(o1) ===
); // true

JSON.stringify(Object.getOwnPropertyDescriptor(o1,"y")) ===
); // true

[see JS: Property Attributes, writable, enumerable, configurable]

[see JS: Object.create]

JS Constructor Topic

  1. JS: “this” Binding
  2. JS: What's Constructor?
  3. JS: Property Key "prototype"
  4. JS: Operator “new”
  5. JS: “instanceof” Operator
  6. JS: Property Key “constructor”
Liket it? Put $5 at patreon.

Or, Buy JavaScript in Depth

If you have a question, put $5 at patreon and message me.