JavaScript: Show Prototype Chain ð
Here is a function that returns any object's Prototype Chain as array.
/* [ xah_get_proto_chain(obj) Take any object, returns a array, the order of elements shows the proto chain. First element is obj itself, last element is root. http://xahlee.info/js/js_show_prototype_chain.html Version 2020-06-25 ] */ const xah_get_proto_chain = ((x) => { const result = [x]; let t = x; while ((t = Reflect.getPrototypeOf(t)) !== null) result.push(t); return result; });
// test const x1 = {k:1}; const x2 = Object.create (x1); x2.k = 2; const x3 = Object.create (x2); x3.k = 3; console.log( xah_get_proto_chain( x3 ) ); // [ { k: 3 }, { k: 2 }, { k: 1 }, {} ] // -------------------------------------------------- // standard builtin objects console.log( xah_get_proto_chain([3,4]) ); // [ [ 3, 4 ], [], {} ] console.log( xah_get_proto_chain({p:1}) ); // [ { p: 1 }, {} ] console.log( xah_get_proto_chain( function f () { return 3 }) ); // [ [Function: f], [Function], {} ] console.log( xah_get_proto_chain( new Date()) ); // [ 2020-06-25T15:50:29.679Z, Date {}, {} ] // note, nodejs prints Object.prototype as {}, same as a newly created object, even though they are different object console.log( Object.prototype ); // {} // similarly, Array.prototype prints as [], etc.
JavaScript Object and Inheritance
- Object Basics
- Object Overview
- Object Type
- Test If a Value is Object Type ð
- Find Object's Type
- Prototype and Inheritance
- Prototype Chain
- Is in Prototype Chain?
- Get/Set Parent
- Show Parent Chain ð
- Create Object
- Object Literal Expr
- Create Object + Parent
- Prevent Adding Property
- Clone Object ð
- Test Object Equality ð
- Add Method to Prototype