题解 | #计数器#

计数器

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。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:25
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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