返回课程

计数器的设置和减少

重要性:5

修改 makeCounter() 的代码,使计数器也可以减少和设置数字

  • counter() 应该返回下一个数字(和以前一样)。
  • counter.set(value) 应该将计数器设置为 value
  • counter.decrease() 应该将计数器减少 1。

查看沙盒代码以获取完整的用法示例。

附注:您可以使用闭包或函数属性来保存当前计数。或者写出两种变体。

打开带有测试的沙盒。

该解决方案在局部变量中使用count,但加法方法直接写入counter。它们共享相同的外部词法环境,也可以访问当前的count

function makeCounter() {
  let count = 0;

  function counter() {
    return count++;
  }

  counter.set = value => count = value;

  counter.decrease = () => count--;

  return counter;
}

在沙箱中打开包含测试的解决方案。