js闭包案例说明

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


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就会递增。

你可能感兴趣的:(js闭包案例说明)