以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 代码题
14. 实现`memo()`

实现思路:

使用一个对象作为缓存,以参数作为 key,以调用结果作为 value。

如果已经有缓存,则直接返回缓存中的结果;否则执行函数,并将结果加入缓存中。

如果函数有第三个参数作为决定缓存 key 的函数,则用该函数生成 key。

实现代码如下:

const memo = (func, getKey = (...args) => args.join('_')) => {  const cache = {};  return (...args) => {    const key = getKey(...args);    if (key in cache) {      return cache[key];    }    const result = func(...args);    cache[key] = result;    return result;  };};