javascript - 为什么这个函数返回一个函数?

标签 javascript

为什么我要将计数器函数分配给计数变量?目的是什么?

function counter() {
  var localVar = 0;
  return function() {
    localVar++;
    return localVar;
  }
}

  var count = counter(); // I am confused here.

  console.log(count());

最佳答案

counter 是一个函数工厂,它在被调用时返回一个函数。

通过将变量分配给 counter,您可以跟踪这个计数器,每次调用它时,变量 localVar 都会递增 1,如果您总是调用 counter()() 您无法跟踪该值。

例子:

function counter() {
  var localVar = 0;
  return function() {
    localVar++;
    return localVar;
  }
}

var count = counter(); 

for(var i = 0; i<99; i++) count();

console.log(count()); // 100



for(var i = 0; i<99; i++) counter()();

console.log(counter()()); // 1

关于javascript - 为什么这个函数返回一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50710149/

相关文章:

javascript - 有效的 geoJson 未填充 Google map 标记

JavaScript通过class/id以外的其他参数点击li

javascript - 在 Java 中运行 Javascript : FilePermission denied

javascript - JavaScript:当另一个音频样本正在播放时,如何停止和重新启动音频?

javascript - 在 PHP 中查看按列的手动值和按行的 mysql 值

javascript - jQuery datepicker - 代码不起作用?

javascript - 当其他选项打开时关闭选项

javascript - node.js 中的 async/await 理解

javascript - Javascript 减少值和退出循环的问题

javascript - 预编译模板的 Dust.js 客户端渲染问题