闭包理解

function getCount(){

     var n =1;

     var count = function (){

           return n++;

     }

   return count;

}

var getTotal = getCount();   // 1

var getTotal = getCount();   //2

在普通的函数中,getCount()被调用执行时,则申请内存,并把局部变量 n ,push入栈,getCount() 函数 执行完毕,内部的局部变量随着函数的退出而销毁,此时的n=1的局部变量已经消失了,但在上面的闭包中,n=1却被count 捕捉,即时getCount()执行完毕,通过count依然可以访问该变量,这种情况返回的函数,并非孤立的函数,甚至把周围的变量环境形成一个封闭的“环境包”,共同返回,俗称  闭包

你可能感兴趣的:(jquery,闭包,js)