js闭包案例说明

js的闭包一直难以理解。下面通过一个案例来简易说明。
使用闭包的一个场景:计数。当点击一次按钮时,计数递增,如果不用闭包来写,那么就要定义一个全局变量。
html

<button onclick="closure()">闭包测试</button>

js

var a=0;
function closure(){
  a++;
  consol.log(a)
}

那么多次点击,就可以实现a的递增。
然而这样写法有一个弊端,定义的a污染了全局变量,写法不够优雅。如果用闭包来写就可以避免这个问题。
闭包的写法如下。

js

  function count() {
    var n=0;
    function countnum() {
      n++;
      console.log(n)
    }
    return countnum;
  }
  var closure=count()

多次点击时,n就会递增。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 三、闭包和高阶函数 3.1 闭包 3.1.1 变量的作用域 所谓变量的作用域,就是变量的有效范围。通过作用域的划分...
    梁同学de自言自语阅读 1,495评论 0 6
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,881评论 2 17
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,366评论 0 7
  • 苏浅是个排球迷,很多人她都认识,以至于球迷朋友都觉得她很会撩,她也一直以为自己很会撩,但是直到遇到她,全都变了。 ...
    十草少年阅读 727评论 3 8
  • 美食,代购 包包,鞋子 我的朋友圈充斥着这些 我想删了他们 但他们都是我朋友 都跟我有过交集 有一天,我发现 我的...
    脚跟不上脑袋阅读 137评论 4 2