forked from Reaper622/JavaScript-DesignPatterns
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProxy.js
More file actions
86 lines (72 loc) · 1.7 KB
/
Proxy.js
File metadata and controls
86 lines (72 loc) · 1.7 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// // 明星没有经济人 自己买包
// // 定义一个包类
// class Bags {
// constructor(props) {
// this.name = props;
// }
// getName() {
// return this.name;
// }
// }
// // 定义一个明星对象
// class Star {
// buyBag(bag) {
// console.log(`买到了一个${bag.getName()}包`);
// }
// }
// // 创建一个明星实例
// let star = new Star();
// star.buyBag(new Bags('Coach')); //买到了一个Coach包
// // 明星有助理 助理帮忙买包
// // 定义一个包类
// class Bags {
// constructor(props) {
// this.name = props;
// }
// getName() {
// return this.name;
// }
// }
// // 定义一个助理对象
// class Assistant {
// constructor(props) {
// this.star = props;
// }
// buyBag(bag) {
// this.star.buyBag(bag);
// }
// }
// // 定义一个明星对象
// class Star {
// buyBag(bag) {
// console.log(`买到了一个${bag.getName()}包`);
// }
// }
// // 创建一个明星实例
// let star = new Star();
// let assistant = new Assistant(star);
// assistant.buyBag(new Bags('Coach')); //买到了一个Coach包
class ABigImage {
constructor() {
this.img = new Image();
document.body.appendChild(this.img);
}
setSrc(src) {
this.img.src = src;
}
}
class ProxyImage {
constructor() {
this.proxyImage = new Image();
}
setSrc(src) {
let bigImageObj = new ABigImage();
bigImageObj.img.src = './local.png'; // 低清晰度图片url 或者本地图片
this.proxyImage.src = src;
this.proxyImage.onload = function() {
bigImageObj.img.src = src;
}
}
}
var proxyImage = new ProxyImage();
proxyImage.setSrc('http://pic.netbian.com/uploads/allimg/190922/212043-1569158443de0c.jpg')