Limited support Avoid in new code. Keep it only when maintaining legacy behavior you cannot yet remove.

Browser support

Feature Desktop Mobile
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
1
12
1
3
18
1
1+Supported (version) Not supported Has note Sub-feature descriptions sourced from MDN Web Docs (CC BY-SA 2.5)

Syntax

JAVASCRIPT
// __proto__ example
// See MDN Web Docs for details

Live demo

Inspect an object's prototype

Compare __proto__ with Object.getPrototypeOf on a plain object.

JavaScript
Output
Press the Run button

Create a simple inheritance chain

Link one object to another prototype and read inherited properties.

JavaScript
Output
Press the Run button

Use a null-prototype dictionary

Create a dictionary object without inherited Object.prototype members.

JavaScript
Output
Press the Run button

Use cases

  • Legacy debugging

    Inspect old prototype-heavy code when modern Object APIs were not used consistently.

  • Migration work

    Touch __proto__ only while replacing older patterns with safer, standard alternatives.

Cautions

  • __proto__ is legacy behavior and can make object relationships harder to reason about than explicit APIs.
  • Prototype mutation affects inheritance and performance in ways that are easy to misuse.

Accessibility

  • No direct accessibility effect, but unstable object behavior can still surface as broken UI state.
  • Prefer clearer object models that reduce maintenance risk in user-facing code.