此文適合JavaScript入門級選手閱讀,高手就可以飄過了。
先扯點閒話。在中國,有這麼一種現象:不管什麼詞或者概念,總會有些人把這些東西解釋的神乎其神,貌似搞得別人聽不懂就覺得自己很厲害的樣子。其實不知道有多2。我個人比較崇尚簡潔明了。什麼詞,什麼概念,如果你能用簡短的一兩句話讓大家聽明白,這才是本事。好了,閒話不扯了,進入正題。
在JavaScript裡什麼叫Callback“回調函數”,用我的話來講就是把方法b當做一個參數傳遞個方法a,當方法a執行完後執行另外一個指定函數(這裡是b函數)。來看個列子:
復制代碼 代碼如下:
<html>
<head>
<title>Callback function test</title>
<script language="javascript" type="text/javascript">
function main(callback)
{
alert("I am main function");
alert("Invoke callback function..");
callback();
}
function b(){
alert("I am callback function: b");
}
function c(){
alert("I am callback function: c");
}
function test() {
main(b);
main(c);
}
</script>
</head>
<body>
<button onClick="test()">click me</button>
</body>
</html>
這裡面main(b),那麼b就稱作回調函數,是不是很好理解?那有人會說我為什麼不可以把b的調用放到main函數裡呢?確實可以,但是那樣你的main方法就只能調用b了。這裡我們將b傳遞個main,或者a傳遞個main,那main裡面的callback方法就是動態的回調函數。優點就在這裡。