Javascript学习和整理札记--回调函数Part(8)

作为一种典型的函数式编程语言,Javascript中的函数实际上是对象,可以存储在"变量"中,也能作为函数参数被传递,能在函数中被创建,也能在函数中被返回。

函数式编程:将函数看作变量(简单的解释方式),回调函数就是从函数式编程这样的编程范式中衍生出来的,使用回调函数又称作回调模式

所以,今天开始看回调函数,等待网址注册的回复消息,然后去上班,被堵车支配的打卡迟点恐慌让我醒很早,唉,我要是这个月没有迟到一次,我就请自己运动一个小时。

--->回调函数

回调函数:函数A,被作为参数传递给函数B,在函数B中被使用,则函数A是回调函数。

作为参数传递给函数B的时候,函数A并不执行,只是传递函数名给函数B,当需要运行的时候,函数A才会被响应,开始执行。

//如何判断函数是否作为参数成功传入
var result = "successed.";
var testFun = function(function_1){
    console.log("Test begin.");
    if(function_1 && typeof(function_1) === "function"){ //判断function_1是否成功传入,传入的是否为function
        function_1();
    }
    else{
        console.log("failed.");
    }
    console.log("Test finish.");
 }

var function_1 = function(){
    console.log(this.result);   //testFun中没有定义,会继续去外面找,也就是全局中寻找,可以找到,可以的
};

testFun(function_1);

匿名函数也可以作为参数传入另外一个函数:

//如何判断函数是否作为参数成功传入
var result = "successed.";
var testFun = function(function_1){
    console.log("Test begin.");
    if(function_1 && typeof(function_1) === "function"){ //判断function_1是否成功传入,传入的是否为function
        function_1();
    }
    else{
        console.log("failed");
    }
    console.log("Test finish.");
 }

 testFun(function(){console.log(this.result);});


-->回调函数的使用场合推荐

    --->资源加载:动态加载js文件后执行回调,AJAX操作后回调等等

    --->链式调用:setter方法比较好实现,getter方法不是很好实现了就

    --->异步函数setTimeout、setInterval的调用:将timer的结果告诉主程序,主程序需要继续执行,因而不能用return

    --->DOM事件及Node.js事件






猜你喜欢

转载自blog.csdn.net/orange_612/article/details/80190061
今日推荐