什么是JS闭包

简而言之,闭包的作用就是在a执行完并返回后,闭包使得Javascript的垃圾回收机制GC不会收回a所占用的资源,因为a的内部函数b的执行需要依赖a中的变量。


1-保护函数内的变量安全。以最开始的例子为例,函数a中i只有函数b才能访问,而无法通过其他途径访问到,因此保护了i的安全性


2-在内存中维持一个变量。依然如前例,由于闭包,函数a中i的一直存在于内存中,因此每次执行c(),都会给i自加1。


例子如下所示:

function a(){

    i=10;

    function b(){
      alert(i);
    }

    return b;

  }

  var result=a();

  result(); // 结果是10,可以自己试一下


你可能感兴趣的:(JS,javascript,闭包)