1const add = () => { 2 const cache = {}; 3 return num => { 4 if (num in cache) { 5 return `From cache! ${cache[num]}`; 6 } else { 7 const result = num + 10; 8 cache[num] = result; 9 return `Calculated! ${result}`; 10 } 11 }; 12}; 13 14const addFunction = add(); 15console.log(addFunction(10)); 16console.log(addFunction(10)); 17console.log(addFunction(5 * 2));
本题为"单选题"
参考答案:
正确选项:C:Calculated! 20 From cache! 20 From cache! 20
add
函数是一个记忆函数。 通过记忆化,我们可以缓存函数的结果,以加快其执行速度。上述情况,我们创建一个cache
对象,用于存储先前返回过的值。
如果我们使用相同的参数多次调用addFunction
函数,它首先检查缓存中是否已有该值,如果有,则返回缓存值,这将节省执行时间。如果没有,那么它将计算该值,并存储在缓存中。
我们用相同的值三次调用了addFunction
函数:
num
等于10
时函数的值尚未缓存,if语句num in cache
返回false
,else块的代码被执行:Calculated! 20
,并且其结果被添加到缓存对象,cache
现在看起来像{10:20}
。cache
对象包含10
的返回值。 if语句 num in cache
返回true
,From cache! 20
被打印。5 * 2
(值为10)传递给函数。 cache
对象包含10
的返回值。 if语句 num in cache
返回true
,From cache! 20
被打印。最近更新时间:2022-10-30
题库维护不易,您的支持就是我们最大的动力!