Since 2015, JavaScript has improved immensely.
It’s much more pleasant to use it now than ever.
In this article, we’ll look at how to control JavaScript object operations.
We can also add handler methods to the handler
we pass into the Proxy
constructor or Proxy.revocable
method.
apply(target, thisArgument, argumentsList)
lets us change the behavior of the apply
or call
method.
It can also change the behavior of direct calls to a function.
target
is the target object which we want to control.
thisArgument
lets us pass in the value of this
in the function.
argumentsList
lets us pass in a list of arguments.
Handler methods have various invariants enforced on them.
They include the following.
apply(target, thisArgument, argumentsList)
has no invariants enforced on them.
construct(target, argumentsList, newTarget)
must return an object, and not null
or a primitive value.
defineProperty(target, propKey, propDesc)
must not let us add [properties to an object that isn’t extensible.
The target
must have a property must have a non-configurable own property with propKey
if configurable
is false
.
If writable
and configurable
are both false
, then we can’t write a new property to the property.
deleteProperty(target, propKey)
can’t delete non-configurable own properties of the target
.
get(target, propKey, receiver)
must return the property’s value if it has an own, non-writable, and non-configurable data property with name propKey
#technology #programming #javascript