JS: Object.setPrototypeOf

By Xah Lee. Date: . Last updated: .

New in ES2015.

Object.setPrototypeOf ( obj, proto )

Set the parent of obj to proto.

Return the changed obj.

let aa = {};
let bb = Object.create (aa);

// bb's parent is aa
console.log ( Object.getPrototypeOf ( bb ) === aa ); // true

// now change parent
let cc = Object.setPrototypeOf ( bb, Array );

// return value is the new bb
console.log ( cc === bb ); // true
console.log ( Object.getPrototypeOf ( bb ) === Array ); // true

[see JS: Prototype and Inheritance]

[see JS: Get/Set Prototype]

Note: it's recommend you NEVER change a object's parent. Due to how JavaScript is implemented, changing a object's parent causes major slow down.

Reference

ECMAScript® 2016 Language Specification#sec-object.setprototypeof

Object and Inheritance Topic

  1. JS: Object Overview
  2. JS: Object Type
  3. JS: Prototype and Inheritance
  4. JS: Create Object
  5. JS: Object Literal Expression
  6. JS: Get/Set Prototype
  7. JS: Create Object with Parent X
  8. JS: Prevent Adding Property
  9. JS: Determine Type of Object
  10. JS: Clone, Deep Copy Object/Array
  11. JS: Test Equality of Objects
  12. JS: Object Object
  13. JS: Object.prototype
Liket it? Put $5 at patreon.

Or, Buy JavaScript in Depth

Patreon me $5. Ask me question on patreon