最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript中的Callback方法淺析

 更新時(shí)間:2015年03月15日 10:33:43   投稿:junjie  
這篇文章主要介紹了Javascript中的Callback方法淺析,本文講解了什么是callback、Javscript Callback、Callback是什么、Callback實(shí)例等內(nèi)容,需要的朋友可以參考下

什么是callback

復(fù)制代碼 代碼如下:

 回調(diào)函數(shù)就是一個(gè)通過函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù),當(dāng)這個(gè)指針被用為調(diào)用它所指向的函數(shù)時(shí),我們就說這是回調(diào)函數(shù)?;卣{(diào)函數(shù)不是由該函數(shù)的實(shí)現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時(shí)由另外的一方調(diào)用的,用于對該事件或條件進(jìn)行響應(yīng)。

這個(gè)解釋看上去很復(fù)雜,于是找到了知乎上一個(gè)更好的解釋

復(fù)制代碼 代碼如下:

 你到一個(gè)商店買東西,剛好你要的東西沒有貨,于是你在店員那里留下了你的電話,過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個(gè)例子里,你的電話號碼就叫回調(diào)函數(shù),你把電話留給店員就叫登記回調(diào)函數(shù),店里后來有貨了叫做觸發(fā)了回調(diào)關(guān)聯(lián)的事件,店員給你打電話叫做調(diào)用回調(diào)函數(shù),你到店里去取貨叫做響應(yīng)回調(diào)事件?;卮鹜戤叀?br />

在Javascript中:

復(fù)制代碼 代碼如下:

 函數(shù)A作為參數(shù)(函數(shù)引用)傳遞到另一個(gè)函數(shù)B中,并且這個(gè)函數(shù)B執(zhí)行函數(shù)A。我們就說函數(shù)A叫做回調(diào)函數(shù)。如果沒有名稱(函數(shù)表達(dá)式),就叫做匿名回調(diào)函數(shù)。
實(shí)際上,也就是把函數(shù)作為參數(shù)傳遞。

Javscript Callback

把上面那些復(fù)雜的解釋都丟到垃圾桶里吧~,看看Callback是什么

Callback是什么

在jQuery中, hide的方法大概是這樣子的

復(fù)制代碼 代碼如下:

$(selector).hide(speed,callback)

使用的時(shí)候,
復(fù)制代碼 代碼如下:

$('#element').hide(1000, function() {
    // callback function
});

我們只需要在里面寫一個(gè)簡單的函數(shù)
復(fù)制代碼 代碼如下:

$('#element').hide(1000, function() {
    console.log('Hide');
});

有一個(gè)小小的注釋在這其中:Callback 函數(shù)在當(dāng)前動畫 100% 完成之后執(zhí)行。然后我們就可以看到真正的現(xiàn)象,當(dāng)id為element的元素隱藏后,會在console中輸出Hide。

就也就意味著:

Callback實(shí)際上是,當(dāng)一個(gè)函數(shù)執(zhí)行完后,現(xiàn)執(zhí)行的那個(gè)函數(shù)就是所謂的callback函數(shù)。

Callback作用

正常情況下函數(shù)都是按順序執(zhí)行的,然而Javascript是一個(gè)事件驅(qū)動的語言。

復(fù)制代碼 代碼如下:

function hello(){
    console.log('hello');
}

function world(){
    console.log('world');
}

hello();
world();


所以正常情況下都會按順序執(zhí)行的,然而當(dāng)執(zhí)行world事件的時(shí)間比較長時(shí)。
復(fù)制代碼 代碼如下:

function hello(){
    setTimeout( function(){
        console.log( 'hello' );
    }, 1000 );
}

function world(){
    console.log('world');
}

hello();
world();


那么這個(gè)時(shí)候就不是這樣的,這時(shí)會輸出world,再輸出hello,故而我們需要callback。

Callback實(shí)例

一個(gè)簡單地例子如下

復(fù)制代碼 代碼如下:

function add_callback(p1, p2 ,callback) {
    var my_number = p1 + p2;
    callback(my_number);
}

add_callback(5, 15, function(num){
    console.log("call " + num);
});


在例子中我們有一個(gè)add_callback的函數(shù),接收三個(gè)參數(shù):前兩個(gè)是要相加的兩個(gè)參數(shù),第三個(gè)參數(shù)是回調(diào)函數(shù)。當(dāng)函數(shù)執(zhí)行時(shí),返回相加結(jié)果,并在控制臺中輸出'call 20'。

相關(guān)文章

最新評論

察雅县| 罗甸县| 会同县| 亳州市| 宁强县| 扶余县| 江阴市| 广南县| 黄骅市| 徐州市| 安图县| 商丘市| 闽清县| 西充县| 桑植县| 清流县| 法库县| 呼图壁县| 长泰县| 萝北县| 页游| 台南市| 工布江达县| 临高县| 天台县| 离岛区| 儋州市| 晋城| 新竹市| 绥宁县| 扎赉特旗| 九台市| 浦北县| 宁安市| 淄博市| 黎城县| 青浦区| 赣州市| 南木林县| 无锡市| 集贤县|