Per esempio, se ho questo gestore/proxy (dal MDN example) ...Come ottenere il gestore del proxy dall'oggetto proxy?
var handler = {
get: function(target, name){
return name in target?
target[name] :
37;
}
};
var p = new Proxy({}, handler);
p.a = 1;
p.b = undefined;
console.log(p.a, p.b); // 1, undefined
console.log('c' in p, p.c); // false, 37
è possibile sondare il proxy, p
, in qualche modo che mi permette di ottenere l'oggetto handler
indietro.
Qualcosa lungo le linee di:
p.__handler__ // returns handler object -> Object {get: handler.get(), set: handler.set(), ...}
p.__handler__.get // returns get prop/fn of handler -> function(target, name){ ...}
Ovviamente, le varie trappole impostati nel gestore sono ancora "conosciuto" al proxy, ma c'è un modo chiara di restituirli/la gestore dal proxy stesso? Se é cosi, come?
Al momento non ho un caso d'uso specifico, ma potrei vederlo utile se volessi cambiare dinamicamente un gestore/trappole dopo che hai già un proxy.
Dovete chiedere gentilmente. Se il proxy definisce una proprietà '__handler__', risponderà alla tua richiesta. – Bergi
È piuttosto il punto delle proxy che i consumatori non sono autorizzati a controllarlo in quel modo, dovrebbero trattarlo come qualsiasi altro oggetto. Se sei il creatore del proxy, è piuttosto banale mantenere un riferimento al 'handler' – Bergi
@Bergi, è strano per me che il" punto di proxy "sia richiesto dallo standard in quel modo. Penso che idealmente sarebbe responsabilità del creatore del proxy dichiarare il proxy pubblico/esposto o privato, anche se il 95% delle volte la risposta "giusta" è che i consumatori non possono ispezionarlo/aumentarlo. –