我面临创建一个函数(箭头函数)的难题,该函数计算它被调用或调用的时间。但是,此函数不能接受任何参数或与外部范围进行交互,就像下面的常规方法一样。

正常方式:

var count = 0;
var countTimesCalled = (count) => {
  count+=1;
  return count;
}

console.log(countTimesCalled(count))


是否有可能创建一个不带任何参数并且不与外部范围进行交互以计算调用时间的函数?在运行时和运行后在哪里存储时间(无用计数)?

请帮忙!

最佳答案

使用IIFE将count变量保存在本地范围内:



var countTimesCalled = (() => {
  var count = 0;
  return () => ++count;
})();
console.log(countTimesCalled());
console.log(countTimesCalled());
console.log(countTimesCalled());

09-16 12:48