• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1declare function print(str:any):string;
2
3
4
5function sum(a:number, b:number):number {
6      return a + b;
7    }
8
9const handler = {
10 apply: function(target:any, thisArg:any, argumentsList:any[]) {
11       print(`Calculate sum: ${argumentsList}`);
12       // expected output: "Calculate sum: 1,2"
13
14       return target(argumentsList[0], argumentsList[1]) * 10;
15   }
16};
17
18const proxy1 = new Proxy(sum, handler);
19
20print(sum(1, 2));
21// expected output: 3
22print(proxy1(1, 2));
23