🟨 JavaScript Intermediate

What is the Reflect API in JavaScript?

Answer

The Reflect object (ES6) provides methods for interceptable JavaScript operations — it mirrors the Proxy traps and is the "complement" of Proxy. Unlike Object methods, Reflect methods have consistent return values (boolean for set/delete instead of throwing). Reflect.get(target, prop, receiver), Reflect.set(target, prop, value), Reflect.has(target, prop) (in equivalent), Reflect.deleteProperty(target, prop), Reflect.ownKeys(target) (all own keys — string + symbol), Reflect.apply(fn, thisArg, args), Reflect.construct(Cls, args), Reflect.defineProperty(), Reflect.getPrototypeOf(). Best practice: use Reflect methods inside Proxy traps to invoke the default behavior: return Reflect.set(target, prop, value). This ensures proper prototype chain handling and return values. Reflect also standardizes some operations that were previously inconsistent (like Object.defineProperty throwing vs Reflect returning false).