js 惰性函数

61次阅读
没有评论
function lazyFunction(fn) {
  let cache;
  
  return function() {
    if (!cache) {
      cache = fn.apply(this, arguments); // 执行函数并缓存结果
    }
    return cache; // 返回缓存的结果
  };
}

// 使用示例
const expensiveCalculation = () => {
  console.log('Calculating the result...');
  return Math.random(); // 假设这是一个耗时的计算
};

const lazyExpensiveCalculation = lazyFunction(expensiveCalculation);

console.log(lazyExpensiveCalculation()); // 输出 "Calculating the result..." 和一个随机数
console.log(lazyExpensiveCalculation()); // 不再输出 "Calculating the result...",而是直接返回之前的随机数
正文完
 
评论(没有评论)