JavaScript設(shè)計模式之緩存代理模式原理與簡單用法示例
本文實例講述了JavaScript設(shè)計模式之緩存代理模式原理與簡單用法。分享給大家供大家參考,具體如下:
一、原理:
緩存代理可以為一些開銷大的運算結(jié)果提供暫時的存儲,在下次運算時,如果傳遞進來的參數(shù)跟之前的一致,則可以直接返回前面存儲的運算結(jié)果,提供效率以及節(jié)省開銷。
二、實例:
var mult = function(){
console.log('開始計算乘機');
var a = 1;
for(var i = 0, l = arguments.length;i < l;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); //輸出:24
proxyMult( 1,2,3,4); //輸出:24
三、解析:
通過緩存代理模式,可將決定權(quán)交給代理函數(shù)對象proxyMult,而mult函數(shù)可以專注于自身的職責。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
js實現(xiàn)簡易的單數(shù)字隨機抽獎(0-9)
這篇文章主要介紹了js實現(xiàn)簡易的單數(shù)字0-9隨機抽獎,可以控制抽取隨機數(shù)開始與停止,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-08-08
動態(tài)創(chuàng)建script標簽實現(xiàn)跨域資源訪問的方法介紹
本篇文章主要是對動態(tài)創(chuàng)建script標簽實現(xiàn)跨域資源訪問的方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02
TensorFlow.js 微信小程序插件開始支持模型緩存的方法
這篇文章主要介紹了TensorFlow.js 微信小程序插件開始支持模型緩存的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02
改變checkbox默認選中狀態(tài)及取值的實現(xiàn)代碼
下面小編就為大家?guī)硪黄淖僣heckbox默認選中狀態(tài)及取值的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05

