InterviewHubPRO
Section Overview
Q495

Question 495 of 521

Part 8: Modern JavaScript APIs, WeakRef, Proxy & Performance (464 - 521)

95%
JavaScript Internals (521 Qs)•Part 8: Modern JavaScript APIs, WeakRef, Proxy & Performance (464 - 521)

What is the Reflect API and when should you use it?

The Reflect API is a built-in object that provides methods for interceptable JavaScript operations. It mirrors many Object methods but with some improvements.

javascript
 const obj = { name: 'John', age: 30 };

 // Setting properties
 Reflect.set(obj, 'city', 'New York');

 // Getting properties
 console.log(Reflect.get(obj, 'name')); // 'John'

 // Checking property existence
 console.log(Reflect.has(obj, 'age')); // true

 // Deleting properties
 Reflect.deleteProperty(obj, 'age');

Advantages over Object methods:

  1. Returns boolean for success/failure:
javascript
    // Object.defineProperty throws on failure
    try {
      Object.defineProperty(obj, 'prop', { value: 1 });
    } catch (e) {}

    // Reflect.defineProperty returns boolean
    const success = Reflect.defineProperty(obj, 'prop', { value: 1 });
  1. Works perfectly with Proxy traps:
javascript
    const handler = {
      set(target, prop, value, receiver) {
        console.log(`Setting ${prop} to ${value}`);
        return Reflect.set(target, prop, value, receiver);
      }
    };

    const proxy = new Proxy({}, handler);
    proxy.name = 'John'; // Logs: Setting name to John
  1. Function.prototype.apply made simpler:
javascript
    // Old way
    Function.prototype.apply.call(Math.max, null, [1, 2, 3]);

    // Reflect way
    Reflect.apply(Math.max, null, [1, 2, 3]); // 3