谁可以解释一下JS中的callback?

JavaScript09

谁可以解释一下JS中的callback?,第1张

就是将一个函数当作参数传给另一个函数,被传的函数叫做回调函数,主要的用意就是当主函数完成后再去执行回调函数。比如:

<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

callback是回调函数。函数有call和apply方法。可以在函数执行时动态的绑定上下文。

因为你这里callback.call()没有传入任何参数。因此callback.call()跟callback()是等价的。没有任何不同。

函数的上下文主要影响函数中的this对象。

正常情况下this对象是根据运行上下文自动指定的。

但是用call方法或者apply方法可以手动设置上下文。相当于可以随意调整函数中的this对象指向谁。