Proxies in a nutshell
A proxy acts like a wrapper for an object and defines the custom behavior for the fundamental operations on the object. Some fundamental operations on the objects are property lookup, property assignment, constructor invocation, enumeration, and so on.
Think of it as a basic way of intercepting the operation you do with an object and its associated properties. For example, calling out a property value by writing <objectname>.propertyName
should technically just echo out the property value, right?
What if you want to take a step back and inject your control right before the echoing part, but right after the calling part? Here's where proxies come in.
Once an object is wrapped using a proxy, all the operations that are supposed to be done on the object should now be done on the proxy object, so that the custom behavior can take place.
Terminology for proxies
Here are some important terms that are used while studying proxies:
- Target: This is the object that is wrapped...