js回调函数的理解及简单实例

来源:互联网 发布:js报表控件 编辑:程序博客网 时间:2024/05/17 01:02

js回调在默写场合下使用还是非常强大的,jq里面运用了大量的回调,现在谈谈我对回调的理解。

JS Api 里这样解释:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
怎么理解呢?
callback就是一个函数,啥样的函数呢?做为一个参数传到另一个函数的函数,它是在在父函数(包含它的那个函数)执行完以后再执行的(我自己翻译的)

举个栗子:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><script type="text/javascript">    function foo(a,ab){        console.log(a);        var param = Math.random();        callback(param);    }    var callback = function(call){        //console.log(call);        callback1(call);    }    var callback1 = function(call){        console.log(call+"111");    }    foo(5,callback);</script></body></html>

这个是一个非常简单的回调callback做为一个参数传入,执行。

我觉得回调有利于封装,我们可以将所需要的方法,全部写在一个js里面做为一个库的存在,再用回调函数去调用,避免了重复代码,还是举个例子:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" src="1.js"></script><title>Insert title here</title></head><body><script type="text/javascript">//var name="jiang";//var param;function mytest(a,b,func){console.log('-----mytest -----');console.log(a+b);func(a,b); param = func(a,b);}mytest(1,5,funcgg);//console.log(param);</script></body></html>

调用的js

console.log("封装 start");//作为一个库var funcgg = function(a,b){//  里面可以放ajax的请求结果    return a+b;}

在jsp页面上面给参数,利用回调来使用js里面的函数。回调使用非常多,有机会还是会再写的。。。。

原创粉丝点击