JS: 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; }; // s------------------------------ // 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 }, [Object: null prototype] {} ] // s------------------------------ // standard builtin objects console.log(xah_get_proto_chain([3, 4])); // [ [ 3, 4 ], Object(0) [], [Object: null prototype] {} ] console.log(xah_get_proto_chain({ p: 1 })); // [ { p: 1 }, [Object: null prototype] {} ] console.log(xah_get_proto_chain(function f() { return 3; })); // [ [Function: f], {}, [Object: null prototype] {} ] console.log(xah_get_proto_chain(new Date())); // [ 2026-09-14T19:53:47.054Z, {}, [Object: null prototype] {} ] console.log(xah_get_proto_chain(Object.prototype)); // [ [Object: null prototype] {} ] console.log(xah_get_proto_chain(Array.prototype)); // [ Object(0) [], [Object: null prototype] {} ]