回调函数,就是当加载完成后,可以进行下一步操作的函数。
举个简单的例子:
登陆操作,当输入用户名和密码进行登陆后,发送一个异步请求至服务端,来验证是否为合法用户。
假如服务端的验证方法,返回一个true|false的布尔值。
客户端脚本中在得到服务端的响应后,就可以进入回调函数。
那么在回调函数中,可以根据这个返回值,进行相应的操作。比如,true的话,跳转到主页面;false的话,重新定位到登陆页面。
回调函数在ajax中还是很有用的。
callback是一个函数对象。callback.call是这个函数对象的一个方法。
假如callback这个函数有3个参数a,b, c
你可以用以下3种方法执行它
callback(a,b,c)
callback.call(null,a,b,c)
callback.apply(null,[a,b,c])
其中null的位置传的是函数内部所使用的this。
就是将一个函数当作参数传给另一个函数,被传的函数叫做回调函数,主要的用意就是当主函数完成后再去执行回调函数。比如:<script type="text/javascript">
function a() {
div1.innerHTML += "a"
}
function b() {
div1.innerHTML += "b"
}
var div1
window.onload = function () {
div1 = document.getElementById("div1")
setTimeout("a()", 3000)
b()
}
</script>
输出结果是:ba
如果改成这样:
<script type="text/javascript">
function a(callback)
{
div1.innerHTML += "a"
callback()
}
function b(){
div1.innerHTML+="b"
}
var div1
window.onload = function () {
div1 = document.getElementById("div1")
setTimeout("a(b)", 3000)
}
</script>
输出结果就是:ab