zoukankan      html  css  js  c++  java
  • 缓存代理

    /**************** 计算乘积 *****************/
    var mult = function(){
      var a = 1;
      for ( var i = 0, l = arguments.length; i < l; i++ ){
        a = a * arguments[i];
      }
      return a;
    };
    /**************** 计算加和 *****************/
    var plus = function(){
      var a = 0;
      for ( var i = 0, l = arguments.length; i < l; i++ ){
        a = a + arguments[i];
      }
      return a;
    };
    
    /**************** 创建缓存代理的工厂 *****************/
    var createProxyFactory = function( fn ){
      var cache = {};
      return function(){
        var args = Array.prototype.join.call( arguments, ',' );
        if ( args in cache ){
          return cache[ args ];
        }
        return cache[ args ] = fn.apply( this, arguments );
      }
    };
    var proxyMult = createProxyFactory( mult ),
    proxyPlus = createProxyFactory( plus );
    alert ( proxyMult( 1, 2, 3, 4 ) ); // 输出: 24
    alert ( proxyMult( 1, 2, 3, 4 ) ); // 输出: 24
    alert ( proxyPlus( 1, 2, 3, 4 ) ); // 输出: 10
    alert ( proxyPlus( 1, 2, 3, 4 ) ); // 输出: 10

     

     摘自JavaScript设计模式与开发实践

  • 相关阅读:
    会议记录
    周总结
    团队博客
    周总结
    移动端疫情展示
    代码规范
    阅读笔记2
    解决 import numpy as np ModuleNotFoundError: No module named 'numpy'错误
    周总结
    爬取最新疫情数据
  • 原文地址:https://www.cnblogs.com/cszdsb/p/6474187.html
Copyright © 2011-2022 走看看