02. Create Proxy
Proxies are special objects that allow you customize some of these operations. A proxy is created with two parameters:
handler
: For each operation, there is a corresponding handler method that – if present – performs that operation. Such a method intercepts the operation (on its way to the target) and is called a trap (a term borrowed from the domain of operating systems).target
: If the handler doesn’t intercept an operation then it is performed on the target. That is, it acts as a fallback for the handler. In a way, the proxy wraps the target.
If the target is a function, two additional operations can be intercepted:
apply
: Making a function call, triggered viaproxy(···)
proxy.call(···)
proxy.apply(···)
construct
: Making a constructor call, triggered vianew proxy(···)
Операции, не соответствующие handler
автоматически перенаправляются в target
.
При помощи прокси нельзя перехватить вызов метода. Это нельзя сделать потому, что вызов метода - это одновременно две операции: (1) get
-получение метода, (2) apply
вызов функции. Решением является proxy-перехватчик на get
, который возвращает обработчик перехвата apply
:
Last updated
Was this helpful?