1、typescript

  1. interface AdminService {
  2. login: (username: string, password: string) => void;
  3. }
  4. class AdminServiceImpl implements AdminService {
  5. login(username: string, password: string) {
  6. console.log('授权登录')
  7. }
  8. }
  9. class AdminServiceProxy implements AdminService {
  10. adminService: AdminServiceImpl;
  11. constructor(adminService: AdminServiceImpl) {
  12. this.adminService = adminService;
  13. }
  14. login(username: string, password: string) {
  15. console.log('验证中。。。')
  16. this.adminService.login(username,password)
  17. console.log('登录成功')
  18. }
  19. }
  20. const server = new AdminServiceImpl();
  21. const proxy = new AdminServiceProxy(server);
  22. proxy.login('kip','123456')

2、事件委托机制

  1. var ulEle = document.getElementById('ulEle');
  2. ulEle.onclick = function (e) {
  3. var el = e || window.e;
  4. var target = el.target || el.srcElement; // target/srcElement 点击原目标
  5. }

3、js中proxy代理

  1. const data = {name:'zhangsan',age:23};
  2. // const data = ['a','b','c'];
  3. const proxyData = new Proxy(data,{
  4. get(target,key,receiver){
  5. const result = Reflect.get(target,key,receiver);
  6. console.log('get',key);
  7. return result;
  8. },
  9. set(target,key,val,receiver){
  10. const result = Reflect.set(target,key,val,receiver);
  11. console.log('set',key,val);
  12. console.log('result',result);
  13. return result;
  14. },
  15. deleteProperty(target,key){
  16. const result = Reflect.deleteProperty(target,key);
  17. console.log('delete property',key);
  18. console.log('result',result);
  19. return result;
  20. }
  21. })
  22. proxyData.name = 'kip song'