题解 | #计数器#

计数器

https://www.nowcoder.com/practice/59154c37d06c41b5b0e19b3b26272229

思路:闭包。closure函数返回一个复杂数据类型即函数,并且所返回函数内部使用外部计数变量count,这样count就会持久化在内存中而不会被销毁。每次调用closure()就会创建不同的闭包函数实例,但是每个闭包函数都有自己的内部变量count,这些闭包函数的内部变量是独立的,故其分别独立计数。

<script type="text/javascript">
  const closure = () => {
     let count=0
     return function(){
        count++
        return count
     }
  }
  const counter1 = closure();
  const counter2 = closure();

  console.log(counter1()); // 1
  console.log(counter1()); // 2

  console.log(counter2()); // 1
  console.log(counter2()); // 2
</script>

总结:每次调用闭包函数会创建不同的闭包函数实例,但是每个闭包函数都有自己的内部变量,并且这些闭包函数的内部变量是独立的,其各自互不影响。

#计数器#
前端js面试 文章被收录于专栏

前端js面试,帮助你更好的理解js。

全部评论

相关推荐

前段时间投boss,实在没绷住,就发出来吧
测开小登的自我救赎:这种就别较真了,感觉应该是那种吃上了学历贬值的时代红利感觉自己也能找一堆92硕士的边角料小公司吧
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务