代理模式
代理模式,为一个对象找一个替代对象,以便对原对象进行访问。即在访问者与目标对象之间加一层代理,通过代理做授权和控制。最常见的例子是经纪人代理明星业务,假设你作为一个投资者,想联系明星打广告,那么你就需要先经过代理经纪人,经纪人对你的资质进行考察,并通知你明星排期,替明星本人过滤不必要的信息。事件代理、JQuery 的$.proxy、ES6 的 proxy 都是这一模式的实现,下面以 ES6 的 proxy 为例:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | const idol = {name: '蔡x抻',
 phone: 10086,
 price: 1000000
 }
 
 const agent = new Proxy(idol, {
 get: function(target) {
 
 return '经纪人电话:10010'
 },
 set: function(target, key, value) {
 if(key === 'price' ) {
 
 if(value < target.price) throw new Error('报价过低')
 target.price = value
 }
 }
 })
 
 
 agent.phone
 agent.price = 100
 
 |