轻松掌握JavaScript代理模式

 更新时间:2016年08月26日 08:45:07   作者:苏福  
这篇文章主要帮助大家轻松掌握JavaScript代理模式,什么是代理模式?代理的用途,感兴趣的小伙伴们可以参考一下

在面向对象设计中,有一个单一职责原则,指就一个类(对象、函数)而言,应该仅有一个引起它变化的原因。如果一个对象承担了过多的职责,就意味着它将变得巨大,引起它变化的原因就多,它把这些职责耦合到了一起,这种耦合会导致程序难于维护和重构。 

这时候,我们可以把该对象(本体)的其中一部分职责分离出来给一些第三方对象去做,本体只管自己的一些核心职责,这些第三方对象就称作代理。代理对象可以作为对象(也叫“真正的主体”)的保护者,让真正的主体对象做尽量少的工作。在代理设计模式中,一个对象充当了另一个对象的接口的角色。 

通常代理和本体的接口应该保持一致性,这样当不需要代理的时候,用户可直接访问本体。 

当我们不方便直接访问一个对象时,就可以考虑给该对象招一个代理。 

代理可用于:图片预加载、合并HTTP请求(代理收集一定时间内的所有HTTP请求,然后一次性发给服务器)、惰性加载(通过代理处理和收集一些基本操作,然后仅在真正需要本体的时候才加载本体)、缓存代理(缓存请求结果、计算结果)等

例子1:图片预加载

 var myImage = (function(){
 var imgNode = document.createElement('img');
 document.body.appendChild(imgNode);
 return {
  setSrc:function(src){
   imgNode.src = src;
  }
 }
})();
//代理函数
var proxyImage = (function(){
 var img = new Image;
 img.onload = function(){
  myImage.setSrc(this.src);
 }
 return{
  setSrc:function(src){
   myImage.setSrc('loading.gif');
   img.src = src;
  }
 }
})();

proxyImage.setSrc('show.jpg');

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 微信小程序工具函数封装

    微信小程序工具函数封装

    这篇文章主要为大家详细介绍了微信小程序工具函数封装,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • JS实现身份证输入框的输入效果

    JS实现身份证输入框的输入效果

    这篇文章主要介绍了JS实现身份证输入框的输入效果,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-08-08
  • 前端进阶JS数组高级用法大全教程示例

    前端进阶JS数组高级用法大全教程示例

    这篇文章主要为大家介绍了前端进阶JS数组高级用法教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Javascript DOM的简介,节点和获取元素详解

    Javascript DOM的简介,节点和获取元素详解

    下面小编就为大家分享一篇详谈DOM的简介,节点和获取元素,具有非常好的参考价值,一起跟随小编过来看看吧,希望对大家有所帮助
    2021-11-11
  • JS实现滑动条案例

    JS实现滑动条案例

    这篇文章主要为大家详细介绍了JS实现滑动条案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JS 参数传递的实际应用代码分析

    JS 参数传递的实际应用代码分析

    在项目中,有一个Ajax加载的区域,是一个Div标签,id为msg_box,这个控制链接包含在一个左侧的导航中,当从其他页面链接到这个页面时,该JS代码就失效了。
    2009-09-09
  • JS使用插件cryptojs进行加密解密数据实例

    JS使用插件cryptojs进行加密解密数据实例

    这篇文章主要介绍了JS使用插件cryptojs进行加密解密数据,结合完整实例形式分析了javascript基于加密插件实现加密解密功能的相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • 一个js的tab切换效果代码[代码分离]

    一个js的tab切换效果代码[代码分离]

    看了此文(YUI实现的Tab 切换),有感而发,写了一个tab切换的函数,做学习之用。原生js实现,因为框架不好玩。
    2010-04-04
  • JS实现简易的图片拖拽排序实例代码

    JS实现简易的图片拖拽排序实例代码

    这篇文章主要介绍了JS实现简易的图片拖拽排序实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • javascript对select标签的控制(option选项/select)

    javascript对select标签的控制(option选项/select)

    html中的select标签,也是asp.net中的asp:DropDownList控件,接下来介绍javascript对select标签的控制,感兴趣的朋友可以了解下,或许本文对你有所帮助
    2013-01-01

最新评论