Handlers for Functions

.apply()

A trap for a function callfunction call function call . (overrides the original function)


RESETRUNFULL
<!DOCTYPE html><html><body><script>

function f(...args) {return args[0];}var p = new Proxy(f, {
   apply: function(target, thisArg, argumentsList) {
      console.log('called: ' + argumentsList.join(','));
      let sum=0;
      for (v of argumentsList) sum+=v;
      return sum;
   }});console.log(p(1,2,3,5)); // called: 1,2,3,5                                    // 11

</script></body><html>

.construct()

A trap for the newnew new operator. (overrides the original constructor)


RESETRUNFULL
<!DOCTYPE html><html><body><script>

var p = new Proxy(function() {console.log('Hi');}, {
   construct: function(target, argumentsList, newTarget) {
      return { value: argumentsList[0] * 10 };
   }});var o = new p(10);console.log(o.value); // 100

</script></body><html>