Secondo la definizione del [[Call]] internal method of Proxy objects dovrebbe funzionare:
Tuttavia, c'è un problema: non tutti gli oggetti Proxy hanno la [[Chiamata]] metodo:
Un oggetto esotici proxy solo ha un [[Chiamata]] metodo interno se il valore iniziale [[ProxyTarget]] internal slot è un oggetto che ha un metodo interno [[Call]].
Pertanto, il bersaglio deve essere un oggetto funzione:
var target =() => {},
handler = { apply:() => 42 }
proxy = new Proxy(target, handler);
proxy(); // 42
noti che ho definito target
utilizzando una funzione freccia in modo da creare un oggetto funzione che non è una funzione di costruzione. In questo modo l'oggetto Proxy può essere chiamato ma non istanziato.
Se si desidera aggiungere anche una trappola "costrutto", la destinazione deve avere un metodo [[Costruisci]], quindi definirlo con una dichiarazione di funzione o espressione di funzione.
forse correlato: [Creazione di un oggetto (non-) richiamabile] (http://stackoverflow.com/q/29680473/1048572) – Bergi