zoukankan      html  css  js  c++  java
  • javaScript设计模式与开发实践(三)代理模式

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。

    虚拟代理实现图片预加载:

    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( 'file:// /C:/Users/svenzeng/Desktop/loading.gif' );
          img.src = src;
        }
     }
    })();
    
    proxyImage.setSrc( 'http:// imgcache.qq.com/music/photo/k/000GGDys0yA0Nk.jpg' );  
    

    缓存代理计算乘积:

    var mult = function() {
      var a = 1;
      for(var i=0,len=arguments.length; i<len; i++) {
        a = a * arguments[i];
      }
      return a ;
    };
    
    var proxyMult = (function(){
      var cache = {};
      return function() {
        var args = Array.prototype.join.call(arguments, ',');
        if(args in cache) {
          return cache[args];
        }
        return cache[args] = mult.apply(this, arguments);
      };
    })();
    
    proxyMult(1,2,3,4);
    proxyMult(1,2,3,4);
    
  • 相关阅读:
    区间K 大数查询
    最大最小公倍数
    吃糖果
    身份证号码升级
    威威猫系列之 吃鸡腿
    小Q系列之失恋
    查询7天之内的数据
    WebService案例 Spring boot+CXF开发WebService Demo
    开发过程中遇到问题
    oracle 自增序列 sequence
  • 原文地址:https://www.cnblogs.com/dreamerjdw/p/6433134.html
Copyright © 2011-2022 走看看