代理模式
Proxy
- 概述
- 为其它对象提供一个代理以控制对这些对象的访问:代理控制具体对象的引用
- 代理可以是任何对象:文件、资源、内存中的对象或者一些难以复制的东西
- 用一个类去控制其它的类
- 应用
- 明星和经纪人:明星是对象,经纪人是代理
- 参考代码 - ES5
-
Proxy:报酬合适才允许表演 class Star { play() { console.log('playing'); } } class Proxy { constructor() { this.star = new Star() } talk(price) { if (price > 1000) { this.star.play() } else { console.log('not allowed'); } } }
-
Usage let proxy = new Proxy() proxy.talk(1000) proxy.talk(10000)
- 参考代码 - ES6 - Proxy
-
Proxy:仿Vue数据驱动;news是一个DOM节点 let obj = {} let pro = new Proxy(obj, { get(tar, key) { return tar[key] }, set(tar, key, val) { if (key == 'data') { tar[key] = val news.innerHTML = val } else { console.log('not allowed'); } } })