14Reflection—Reflect and Proxy

In this chapter, you'll learn about the Reflect object, which provides a host of useful utility features for constructing and interacting with objects, and Proxy, which provides the ultimate façade pattern for JavaScript—a pattern that can be important for providing APIs to client code.

Reflect and Proxy are designed to be used together, though each can be used without the other. This chapter will briefly introduce Reflect, but then mostly cover it in the context of covering Proxy.

REFLECT

Reflect was added in ES2015 with various methods corresponding to fundamental operations that are performed on objects: getting and setting a property's value, getting and setting the object's prototype, deleting a property from an object, etc.

Your first thought is probably: “Why do we need utility functions for that? We can already do those things just using operators on the object directly.” That's partly true, and in cases where it isn't true, there's usually a function (or combination of functions) on Object that does the job; Reflect brings a few things to the table, though:

  • It provides a thin wrapper function for all of the fundamental object operations, rather than having some of them be syntax and others be Object functions ...

Get JavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.