将简单功能修改为自包含

时间:2019-02-28 14:02:20

标签: javascript

我知道这个问题有一个快速的单行答案,但是我无法围绕如何正确使用属性来使此箭头函数自成一体。它只是一个计算被调用次数的函数。一些帮助,将不胜感激。

const countTimes = () => {
    countTimes.count = countTimes.count + 1;
    return countTimes.count;
};
countTimes.count = 0;

2 个答案:

答案 0 :(得分:3)

该函数体仅在执行期间存在,并且每次调用该函数时均从新函数开始。如果要在函数调用之间保留数据,则必须必须将数据存储在函数主体之外(作为对象的属性,封闭变量,全局变量或其他内容)。

答案 1 :(得分:2)

也许使用closure

function countTimes() {
  let count = 0;
  return function() {
    return ++count;
  }
};

const count = countTimes();

console.log(count());
console.log(count());
console.log(count());