bugl
bugl
HomeLearnPatternsSearch
HomeLearnPatternsSearch

Loading lesson path

Learn/JavaScript/Objects, Classes, and Advanced Patterns
JavaScript•Objects, Classes, and Advanced Patterns

Reflect & Proxy Reference

Concept visual

Reflect & Proxy Reference

Pointer walk
two pointers
leftright102132436485116
left=0
right=6
1
3

Start at both ends

Complete Reflect Reference

Revised December 2025

Method

Description

Reflect.apply()

Call a function

Reflect.construct() Create object (like new) Reflect.defineProperty()

Define a property

Reflect.deleteProperty()

Delete a property

Reflect.get()

Get a property

Reflect.getOwnPropertyDescriptor()

Get property descriptor

Reflect.getPrototypeOf()

Get the prototype of an object

Reflect.has()

Check if property exists

Reflect.isExtensible()

Check if object can grow

Reflect.ownKeys() Get all keys (incl. symbols) Reflect.preventExtensions()

Stop object from growing

Reflect.set()

Set a property

Reflect.setPrototypeOf()

Set the prototype of an object

Why Reflect

Reflect is safe and flexible, especially when used inside a Proxy.

Complete Proxy Handler Reference

Revised December 2025

Method

Description handler.apply() Call a function handler.construct() Create object (like new) handler.defineProperty() Define a property handler.deleteProperty() Delete a property handler.get() Get a property handler.getOwnPropertyDescriptor() Get property descriptor handler.getPrototypeOf() Get the prototype of an object handler.has() Check if property exists handler.isExtensible() Check if object can grow handler.ownKeys() Get all keys (incl. symbols) handler.preventExtensions() Stop object from growing handler.set() Set a property handler.setPrototypeOf()

Set the prototype of an object

JavaScript Internal Methods

All JavaScript objects have 13 internal methods. Each method has a corresponding Proxy trap:

Internal Operation

Proxy trap

[[Construct]] construct() [[Call]] apply() [[Get]]

[[Set]] set() [[HasProperty]] has() [[Delete]] deleteProperty() [[DefineProperty]] defineProperty() [[GetOwnProperty]] getOwnProperty() [[OwnPropertyKeys]] ownPropertyKeys() [[IsExstensible]] isExtensible() [[PreventExstensions]] preventExtensions() [[GetPrototypeOf]] getPrototypeOf() [[SetPrototypeOf]] setPrototypeOf() Every Proxy trap has a Reflect method with the same name and signature.

Internal Operation

Previous

JavaScript Proxy

Next

JavaScript Typed Arrays