1、typescript
interface AdminService { login: (username: string, password: string) => void;}class AdminServiceImpl implements AdminService { login(username: string, password: string) { console.log('授权登录') }}class AdminServiceProxy implements AdminService { adminService: AdminServiceImpl; constructor(adminService: AdminServiceImpl) { this.adminService = adminService; } login(username: string, password: string) { console.log('验证中。。。') this.adminService.login(username,password) console.log('登录成功') }}const server = new AdminServiceImpl();const proxy = new AdminServiceProxy(server);proxy.login('kip','123456')
2、事件委托机制
var ulEle = document.getElementById('ulEle'); ulEle.onclick = function (e) { var el = e || window.e; var target = el.target || el.srcElement; // target/srcElement 点击原目标 }
3、js中proxy代理
const data = {name:'zhangsan',age:23};// const data = ['a','b','c'];const proxyData = new Proxy(data,{ get(target,key,receiver){ const result = Reflect.get(target,key,receiver); console.log('get',key); return result; }, set(target,key,val,receiver){ const result = Reflect.set(target,key,val,receiver); console.log('set',key,val); console.log('result',result); return result; }, deleteProperty(target,key){ const result = Reflect.deleteProperty(target,key); console.log('delete property',key); console.log('result',result); return result; }})proxyData.name = 'kip song'