JS回调函数部分小结

在学习JS时遇到了回调函数,经过自己的一番摸索,对回调函数有了进一步的了解,顺便将其总结如下:

回调函数

回调函数是一段可执行的代码段,它作为参数传递给一个函数的时候,传递的只是函数的定义,并不会立即执行,在需要的时候回调这段代码段执行,回调函数是一个闭包,它能够访问到外层定义的变量。

先看下面这个例子:

function add(){
    var count = 0;
    return function(){
        count++;
        return count;  
    };
}

var a = add();//函数 add() 只执行一次,a 为函数 add() 返回的函数表达式
              //此时有个闭包,即每次调用 count 时都是用同一个count
a();    //1
a();    //2
a;      //回调函数表达式:function(){
        //              count++;
        //              return count;  
        //         }

在这段代码中,函数 add() 只执行了一次,在JS垃圾回收机制中的引用计数中,变量 count 由于回调函数的引用,没有随着 add() 函数的结束而被回收,所以两个 a() 返回的 count 值将不相同。

在第一个 a() 时,是调用 add() 返回的回调函数,count++,故返回的 count 值为1;

在第二个 a() 时,也调用 add() 返回的回调函数,count的值加1,即count = 2。

发布了8 篇原创文章 · 获赞 0 · 访问量 140

猜你喜欢

转载自blog.csdn.net/Kingknot/article/details/99125130