-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathProxy.js
More file actions
53 lines (40 loc) · 833 Bytes
/
Copy pathProxy.js
File metadata and controls
53 lines (40 loc) · 833 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"use script";
/**
* Create a simple object with a callback function
*/
var someObject = {
doSomething: function(callback) {
var firstArgument = 'first',
secondArgument = 'second';
callback(firstArgument, secondArgument);
}
};
/**
* Create proxy
*/
var util = {
createProxy: function(callback, context) {
return function() {
callback.apply(context, arguments);
};
}
};
/**
* Test
*/
var otherObject = {
callSomeObject: function() {
someObject.doSomething(this.onCallback);
someObject.doSomething(util.createProxy(this.onCallback, this));
},
onCallback: function() {
console.log(this === otherObject, arguments);
}
};
otherObject.callSomeObject();
/**
* output:
*
* false { '0': 'first', '1': 'second' }
* true { '0': 'first', '1': 'second' }
*/