Tool ยท JavaScript
One object in, its whole prototype chain out, with each level's own properties and the place a read of any name would stop.
Open the walker on its own page, full width, which suits a phone.
Date or a DOM button. The code that made it appears below the menu.Object.getPrototypeOf returned for the level above it, and the last is always null. Open a level to list its own properties, each marked as a value, a function or an accessor.[Symbol.iterator]. A name found on no level reaches null, and reading it gives undefined.Try addEventListener on the button, then on the array. The button's chain goes through HTMLButtonElement, HTMLElement, Element, Node and EventTarget before it joins the same Object.prototype that a literal has. The language and the DOM use one mechanism for inheritance.
The tool reads property descriptors and never reads through an accessor, so it runs no getters. A name is compared with property names as text and is never evaluated. The logic is in object-walker.js, which you can read and reuse.
[[Prototype]] and .prototype, shadowing, extending built-ins, and class.