最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • JavaScript的设计模式之代理模式

    一、代理模式概念

    说明:顾名思义就是用一个类来代替另一个类来执行方法功能,这个模式跟装饰模式有点相似,不一样的是,代理模式是代替客户初始化被代理对象类,而装饰模式采用接口或初装饰者参数引用的方式来执行的。

    解释:房屋中介,可以代理帮助卖家把房子卖给买家,这中间卖家说要卖的价钱就可以了,买家也可以提出自己要买的房型,中介可以帮忙处理中间环节。最后达成买卖。中介可以同时代理很多房屋买卖,并且可以代理租房事宜。

    二、代理模式的作用和注意事项

    模式作用:

    1、远程代理(一个对象将不同空间的对象进行局部代理)

    2、虚拟代理(根据需要创建开销很大的对象如渲染网页暂时用占位代替真图)

    3、安全代理(控制证实对象的访问权限)

    4、智能指引(调用对象代理处理另外一些事情如垃圾回收机制)

    注意事项:

    1、不能滥用代理,有时候仅仅是给代码增加复杂度

    三、代理模式代码和实战总结

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <script>
    //代理模式需要三方
    //1.买家
    function maijia(){
    this.name = "小明";
    this.money = "30万";
    }
    //2.中介
    function zhongjie(){
    }
    zhongjie.prototype.maifang = function(){
    //new fongdong(new maijia()).maifang("20万");
    new fongdong(new maijia()).maifang("20万");
    }
    //3.卖家
    function fongdong(maijia){
    this.maijia_name = maijia.name;
    this.maijia_money = maijia.money;
    this.maifang = function(money){
    // alert("收到了来自【"+this.maijia_name+"】"+money+"人民币");
    alert("收到了来自【"+this.maijia_name+"】"+this.maijia_money+"人民币");
    }
    }
    (new zhongjie()).maifang();
    </script>
    <script>
    // A2B
    function A(){
    this.money = "20RMB";
    }
    function to(){
    if(!(this instanceof to)){
    return new to;
    }
    }
    to.prototype.maifang = function(){
    var a = new A();
    new B().maifang(a.money);
    }
    function B(){
    this.maifang = function(money){
    alert("收到了钱"+money);
    }
    }
    (new to()).maifang();
    to().maifang();
    </script>
    </body>
    </html>
    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » JavaScript的设计模式之代理模式
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情