这一题我在看Vue的工具函数中见识到过,本质闭包和高阶函数的应用,但是理解起来还是要下点功夫~/** * let callCount = 0; * const memoizedFn = memoize(function (a, b) { * callCount += 1; * return a + b; * }) * memoizedFn(2, 3) // 5 * memoizedFn(2, 3) // 5 * console.log(callCount) // 1 */要求对于相同的入参多次调用,返回的结果永远不变,它返回的是已经缓存的结果题解function memoize(fn) { let cache = {}; return function (...args) { if (cache[args]) return cache[args]; return (cache[args] = fn(...args)); }; }这里get一个知识点,对象的Key值会自动转字符类型,所以不用特地去转换key的类型和字符拼接
Harexs
风归云动,天河泻梦