深入解读JavaScript

代理模式开发实践

2018-09-17  本文已影响0人  悟C

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

写一个缓存代理计算价格的例子:

var prices = function() {
  console.log('开始计算总价');
  var a = 0;
  for (var i = 0, l = arguments.length; i < l; i++) {
    a = a + arguments[i];
  }
  return a;
}

var proxyCalculation = (function() {
  var cache = {};
  return function() {
    var args = Array.prototype.join.call(arguments, ',');
    if (args in cache) {
      return cache[args];
    }
    return cache[args] = prices.apply(this, arguments);
  }
})();

console.log(proxyCalculation(10, 20));
console.log(proxyCalculation(10, 20));
// 开始计算总价
// 30
// 30

上面的例子用proxyCalculation来代理prices,把缓存功能设置在proxyCalculation中。当第二次价格列表一样的时候,这样就可以快速的得到结果。

上一篇下一篇

猜你喜欢

热点阅读