Sé cómo interceptar get
`set` y tal dentro de un proxy usando el siguiente código:
function get( target, prop, receiver ) { console.log("Intercepted get") return Reflect.get( target, prop, receiver ); } var handler = { 'get': get }; var proxy = new Proxy( new Array(...[7, 1,2,3,4,5]), handler );
No puedo replicar esto para ordenar. Agregando:
function sort(target, prop) { console.log("Intercepted sort") return Reflect.sort(target); } var handler = { 'get': get, 'sort': sort };
no funciona Tampoco he podido encontrar documentación. ¿Cómo intercepto la función de sort
?
Tienes que usar los métodos get
to trap. get
se llama para cada propiedad y cada método que se lee. El nombre de la propiedad o método se pasa a get
como segundo argumento prop
:
function sort() { console.log("Intercepted sort") return this.sort(); } function get( target, prop, receiver ) { if (prop === 'sort') { return sort.bind(target); } console.log("Intercepted get") return Reflect.get( target, prop, receiver ); } var handler = { get }; var proxy = new Proxy( new Array(...[7,1,2,3,4,5]), handler ); console.log(proxy.sort())