簡體   English   中英

¿有人可以向我解釋 JavaScript 中的回調嗎? - 初學者

[英]¿Someone can explain to me Callback in JavaScript? - beginner

我是這個世界的初學者,我覺得自己有點迷路了。

我在 udemy 買了一門課程,這就是例子:

function add( a, b, cb) {
    const r = a + b 
    cb(r)
}

function callback(result) {
    console.log('This is the result', result);
}

add(2, 3, callback)

這是我不明白的部分:cb(r) - 為什么“cb”在我的代碼的那部分(添加(a,b, cb ))並稍后重復? 我想知道我們將 const r 的結果保存在 Cb(r) 中,但我不知道為什么在兩個部分中

為什么當我在我的終端中運行它時,它首先回調 function 並添加 function?

如果有人可以向我解釋這里發生了什么,我將不勝感激

我只是想知道它是如何工作的,因為它聽起來在這條路上很重要,它運行但我不知道為什么

您編寫function addfunction callback的順序無關緊要。 它們只是定義,即關於如何做某事的食譜。 但是除非調用它們,否則僅通過編寫函數實際上什么也做不了。

通過寫function add(a, b, cb) ,你只是說“我正在寫一個名為 add 的 function,它應該接收 3 個參數作為輸入,我將它們命名為 a、b 和 cb。 ”但你不知道還不知道它們的價值是多少。 您只需以這種方式命名它們,以便能夠對它們進行操作。 當你調用cb(r)時,你基本上不知道 cb 是什么,你只知道它是一個稍后要完成的 function。

基本上你的代碼不會按照你寫的順序執行。

Javascript 在讀取add(2, 3, callback)時開始執行操作。 此時它明白它需要執行function add ,你給它三個參數,其中兩個是數字,第三個是 function。但是它還沒有執行function 回調,它只知道它姓名。 現在,它只是搜索function add所在的代碼,然后首先執行此代碼,其中a=2、b=3 和 cb=callback

一旦找到它,就會跳轉到function add的開頭,創建一個新常量 r並將a+b放入其中。 當它看到Cb(r)時,它采用您提交給它的第三個參數,在本例中為function 回調,並使用參數r調用它。 因此,它再次跳轉到 function 回調的開頭,並使用參數r執行它。

在此示例中,無需使用回調 function,這只是說明回調概念的基本示例。 但是正如您帖子的評論中所說,您可能需要編寫第二個回調 function,例如:

function anotherCallback(result) {
    console.log('This is ANOTHER result', result);
}

然后你可以打電話

add(2, 3, callback)
add(4, 5, anotherCallback)

無需重新編寫 function 添加。

我已嘗試使其盡可能詳細,我希望這是清楚的,但如果不清楚,請不要猶豫,提出更多問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM