zoukankan      html  css  js  c++  java
  • ES6——Proxy实现Web服务,进行方法拦截,通过方法名称生成网址

    实例:Web 服务的客户端
    Proxy 对象可以拦截目标对象的任意属性,这使得它很合适用来写 Web 服务的客户端。
    const service = createWebService('http://example.com/data');
    service.employees().then(json => {
    const employees = JSON.parse(json);
    // ···
    });
    上面代码新建了一个 Web 服务的接口,这个接口返回各种数据。Proxy 可以拦截这个对象的任意属性,所以不用为每一种数
    据写一个适配方法,只要写一个 Proxy 拦截就可以了。
    function createWebService(baseUrl) {
        return new Proxy({},{
            get(target, propKey, receiver) {
                return ()=>httpGet(baseUrl + '/' + propKey);
            }
        });
    }

    完整demo:

    const service = createWebService('http://example.com/data');
    
    function createWebService(baseUrl) {
        return new Proxy({},{
            get(target, propKey, receiver) {
                return ()=>console.log(baseUrl + '/' + propKey);
            }
        });
    }
    service.getName()

    输出:

    http://example.com/data/getName
    同理,Proxy 也可以用来实现数据库的 ORM 层。
  • 相关阅读:
    Python--BeautifulSoup4丶Tag丶Xpath丶requests+re的基础学习及使用
    c#字符串字面量
    vim操作
    序列的方法
    python数值类型与序列类型
    Linux操作学习笔记1
    Jav的10个面向对象设计原则
    JAVA面向对象基础
    二进制 八进制 十六进制
    using 的故事
  • 原文地址:https://www.cnblogs.com/sunupo/p/15496083.html
Copyright © 2011-2022 走看看