缓存函数执行的结果
代码实现
/**
*
*
* @param func 需要缓存化的函数
* @returns 返回缓存化后的函数
*/
function memoize (fn) {
function func () {
var argsJson = JSON.stringify(arguments)
var resultMap = func.resultMap
if (resultMap[argsJson]) return resultMap[argsJson]
resultMap[argsJson] = fn.apply(this, arguments)
return resultMap[argsJson]
}
func.resultMap = {}
return func
}
使用方法
function add (number1, number2) {
// 参数一样的时候,函数只会执行一次,并将结果缓存起来。
return number1 + number2
}
var add = memoize(add) // 加工函数
add(1, 2)
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果