对闭包的简单理解

来源:互联网 发布:知柏地黄丸 口腔溃疡 编辑:程序博客网 时间:2024/06/05 12:07

闭包是一个特别抽象的概念,所以本文不会对概念进行解释。直接写例子(需要对赋值、程序的执行、返回值有一定的理解),当然本文只是个人对闭包的浅显的理解,希望能够对你有所帮助。

function fun(){

var count=0;

function funSub(){

count++;

console.log(count);

}

return funSub;

}

var fn=fun();//执行fun函数,并将funSub函数的地址赋值个fn。funSub定义在fun中,因此funSub依赖于fun,而外部变量 fn 又引用了funSub, 所以fun间接的被 fn 引用,也就是说,fun不会被GC回收,会一直保存在内存中

fn();//1(执行函数funSub)

fn();//2(执行函数funSub)

fn();//3(执行函数funSub)