国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript中的Callback方法淺析

2024-05-06 16:16:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Javascript中的Callback方法淺析,本文講解了什么是callback、Javscript Callback、Callback是什么、Callback實例等內容,需要的朋友可以參考下
 

什么是callback

 

復制代碼代碼如下:

 回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用為調用它所指向的函數時,我們就說這是回調函數。回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用于對該事件或條件進行響應。

 

這個解釋看上去很復雜,于是找到了知乎上一個更好的解釋

 

復制代碼代碼如下:

 你到一個商店買東西,剛好你要的東西沒有貨,于是你在店員那里留下了你的電話,過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個例子里,你的電話號碼就叫回調函數,你把電話留給店員就叫登記回調函數,店里后來有貨了叫做觸發了回調關聯的事件,店員給你打電話叫做調用回調函數,你到店里去取貨叫做響應回調事件。回答完畢。

 

在Javascript中:

 

復制代碼代碼如下:

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

 

Javscript Callback

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

Callback是什么

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

復制代碼代碼如下:

$(selector).hide(speed,callback)

使用的時候,
復制代碼代碼如下:

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

我們只需要在里面寫一個簡單的函數
復制代碼代碼如下:

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

有一個小小的注釋在這其中:Callback 函數在當前動畫 100% 完成之后執行。然后我們就可以看到真正的現象,當id為element的元素隱藏后,會在console中輸出Hide。

 

就也就意味著:

Callback實際上是,當一個函數執行完后,現執行的那個函數就是所謂的callback函數。

Callback作用

正常情況下函數都是按順序執行的,然而Javascript是一個事件驅動的語言。

復制代碼代碼如下:

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

 

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

hello();
world();


所以正常情況下都會按順序執行的,然而當執行world事件的時間比較長時。
復制代碼代碼如下:

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

 

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

hello();
world();


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

 

Callback實例

一個簡單地例子如下

復制代碼代碼如下:

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

 

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


在例子中我們有一個add_callback的函數,接收三個參數:前兩個是要相加的兩個參數,第三個參數是回調函數。當函數執行時,返回相加結果,并在控制臺中輸出'call 20'。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 邵阳县| 江阴市| 贺兰县| 渝中区| 乐清市| 图们市| 阿克苏市| 莒南县| 长治市| 丹寨县| 连城县| 红原县| 礼泉县| 峨边| 横山县| 竹北市| 上饶市| 胶州市| 城步| 措美县| 洪湖市| 桦川县| 彰化县| 通州市| 贺州市| 盐城市| 佛冈县| 吕梁市| 芦溪县| 青州市| 长宁区| 成安县| 来安县| 吉隆县| 双峰县| 乌兰察布市| 芒康县| 福建省| 福建省| 临沂市| 宜黄县|