您好,登錄后才能下訂單哦!
小編給大家分享一下js中什么是回調函數,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
回調函數是一段可執行的代碼段,它作為一個參數傳遞給其他的代碼,其作用是在需要的時候方便調用這段(回調函數)代碼。
在JavaScript中函數也是對象的一種,同樣對象可以作為參數傳遞給函數,因此函數也可以作為參數傳遞給另外一個函數,這個作為參數的函數就是回調函數。
const btnAdd = document.getElementById('btnAdd');btnAdd.addEventListener('click', function clickCallback(e) { // do something useless});
在本例中,我們等待id為btnAdd
的元素中的click
事件,如果它被單擊,則執行clickCallback
函數。回調函數向某些數據或事件添加一些功能。
回調函數有一個致命的弱點,就是容易寫出回調地獄(Callback hell)。假設多個事件存在依賴性:
setTimeout(() => { console.log(1) setTimeout(() => { console.log(2) setTimeout(() => { console.log(3) },3000) },2000)},1000)
這就是典型的回調地獄,以上代碼看起來不利于閱讀和維護,事件一旦多起來就更是亂糟糟,所以在es6中提出了Promise和async/await來解決回調地獄的問題。當然,回調函數還存在著別的幾個缺點,比如不能使用 try catch 捕獲錯誤,不能直接 return。
以上是“js中什么是回調函數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。