Javascript Memoization 緩存函數(shù)使用說(shuō)明
var flower= function(){
var t=0,i=0;
for(;i<5000000;i++){
t++;
}
return t;
}
flower 返回t的值
假設(shè)這個(gè)函數(shù)需要花費(fèi) 2-3秒 。
通過(guò) Memoization 函數(shù),再次查找相同的值時(shí),直接獲取事先緩存好的 value,立刻返回;
Memoization 函數(shù)
var Memoize = function(fn, cache, refetch, obj){
cache = cache || {};//用來(lái)緩存結(jié)果
return function(){
var k = arguments[1] ? Array.prototype.join.call(arguments, '__') : arguments[0];//多個(gè)參數(shù)則有'__'分隔開(kāi)
if (!(k in cache) || (refetch && cache[k] == refetch)) { //如果不在緩存列表中,并且和給定的refetch值相等,重新去運(yùn)算
cache[k] = fn.apply(obj || fn, arguments); //obj參數(shù)可用來(lái)改變this指針
}
return cache[k];//返回結(jié)果
}
}
Demo:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
相關(guān)文章
原生js實(shí)現(xiàn)針對(duì)Dom節(jié)點(diǎn)的CRUD操作示例
這篇文章主要介紹了原生js實(shí)現(xiàn)針對(duì)Dom節(jié)點(diǎn)的CRUD操作,結(jié)合實(shí)例形式分析了javascript操作dom節(jié)點(diǎn)的創(chuàng)建、獲取、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2019-08-08對(duì)layui中的onevent 和event的使用詳解
今天小編就為大家分享一篇對(duì)layui中的onevent 和event的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09js實(shí)現(xiàn)動(dòng)態(tài)改變r(jià)adio狀態(tài)的方法
下面小編就為大家分享一篇js實(shí)現(xiàn)動(dòng)態(tài)改變r(jià)adio狀態(tài)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02深入理解JavaScript系列(3) 全面解析Module模式
Module模式是JavaScript編程中一個(gè)非常通用的模式,一般情況下,大家都知道基本用法,本文嘗試著給大家更多該模式的高級(jí)使用方式2012-01-01JavaScript中創(chuàng)建字典對(duì)象(dictionary)實(shí)例
這篇文章主要介紹了JavaScript中創(chuàng)建字典對(duì)象(dictionary)實(shí)例,本文直接給出了實(shí)現(xiàn)的源碼,并給出了使用示例,需要的朋友可以參考下2015-03-03基于JavaScript實(shí)現(xiàn)動(dòng)態(tài)添加刪除表格的行
又一個(gè)動(dòng)態(tài)控制表格的效果,用JavaScript動(dòng)態(tài)生成表格行、表格列,以及還可動(dòng)態(tài)刪除這些行列,行等,運(yùn)行代碼后,點(diǎn)擊對(duì)應(yīng)的功能按鈕,即可實(shí)現(xiàn)對(duì)應(yīng)的表格操作功能,接下來(lái)通過(guò)代碼實(shí)例給大家介紹JavaScript實(shí)現(xiàn)動(dòng)態(tài)添加刪除表格的行,需要的朋友參考下2016-02-02JS中使用apply方法通過(guò)不同數(shù)量的參數(shù)調(diào)用函數(shù)的方法
這篇文章主要介紹了JS中使用apply方法通過(guò)不同數(shù)量的參數(shù)調(diào)用函數(shù)的方法的相關(guān)資料,需要的朋友可以參考下2016-05-05js實(shí)現(xiàn)獲取當(dāng)前時(shí)間是本月第幾周的方法
這篇文章主要介紹了js實(shí)現(xiàn)獲取當(dāng)前時(shí)間是本月第幾周的方法,涉及javascript針對(duì)日期及時(shí)間的相關(guān)操作技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-08-08Javascript 修改String 對(duì)象 增加去除空格功能(示例代碼)
這篇文章主要介紹了Javascript 修改String 對(duì)象 增加去除空格功能(示例代碼)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11