-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproxy.js
More file actions
56 lines (46 loc) · 935 Bytes
/
proxy.js
File metadata and controls
56 lines (46 loc) · 935 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
54
55
56
/**
* has
* get
* set
* 都可以做事情
*/
var proxy = new Proxy({}, {
get: function (target, property) {
console.log('target', target)
console.log('property', property)
return 35;
}
});
let obj = Object.create(proxy);
console.dir('obj', obj)
obj.time //
let stu1 = { name: '张三', score: 59 };
let stu2 = { name: '李四', score: 99 };
let handler = {
has(target, prop) {
if (prop === 'score' && target[prop] < 60) {
console.log(`${target.name} 不及格`);
return false;
}
return prop in target;
}
}
let oproxy1 = new Proxy(stu1, handler);
let oproxy2 = new Proxy(stu2, handler);
// 'score' in oproxy1
var data = 'score' in oproxy2;
console.log(data);
// 张三 不及格
// false
// 'score' in oproxy2
// true
// for (let a in oproxy1) {
// console.log(oproxy1[a]);
// }
// 张三
// 59
// for (let b in oproxy2) {
// console.log(oproxy2[b]);
// }
// 李四
// 99