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ù)可以專注于自身的職責(zé)。
更多關(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ù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
JS實現(xiàn)合并兩個數(shù)組并去除重復(fù)項只留一個的方法
這篇文章主要介紹了JS實現(xiàn)合并兩個數(shù)組并去除重復(fù)項只留一個的方法,涉及JavaScript數(shù)組合并及去重的相關(guān)技巧,需要的朋友可以參考下2015-12-12document.createElement()用法及注意事項(ff下不兼容)
今天處理了一個日期選擇器的ie和ff的兼容問題,本來這種情況就很難找錯誤,找了好久才把錯誤定位到j(luò)s中創(chuàng)建元素的方法document.createElement(),這個方法在ie下支持這樣創(chuàng)建元素2013-03-03JS幻燈片可循環(huán)播放可平滑旋轉(zhuǎn)帶滾動導(dǎo)航(自寫)
本文為大家介紹下實現(xiàn)JS幻燈片可循環(huán)播放帶滾動導(dǎo)航可平滑旋轉(zhuǎn)的全過程,效果還不錯,由需要的朋友可以參考下,希望對大家有所幫助2013-08-08js和jquery批量綁定事件傳參數(shù)一(新豬豬原創(chuàng))
js綁定事件傳參,javascript綁定事件傳參數(shù),jquery綁定事件傳參數(shù)2010-06-06JS函數(shù)動態(tài)傳遞參數(shù)的方法分析【基于arguments對象】
這篇文章主要介紹了JS函數(shù)動態(tài)傳遞參數(shù)的方法,結(jié)合實例形式分析了javascript通過arguments對象獲取傳遞參數(shù)的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06微信小程序開發(fā)自定義tabBar實戰(zhàn)案例(定制消息99+小紅心)
一定的需求情況下無法使用小程序原生的tabbar的時候,需要自行實現(xiàn)一個和tabbar功能一模一樣的自制組件,下面這篇文章主要給大家介紹了關(guān)于微信小程序開發(fā)自定義tabBar(定制消息99+小紅心)的相關(guān)資料,需要的朋友可以參考下2022-12-12