回撥函式理解(轉載)
阿新 • • 發佈:2018-12-09
想要詳細理解回撥函式的內容還需要理解與javascript單執行緒和非同步相關知識。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <button id="btn" onclick="btnOnClick()">按鈕</button> <script> functionprintText(){ document.write("回撥函式"); } setTimeout(printText,0); /*便於記憶 *我們完全可以記憶:被當成引數使用的函式名就是回撥函式。*/ document.write("test1"); </script> </body> </html>
以下內容為轉載內容:轉載自https://www.jb51.net/article/144414.htm
回撥函式,什麼是回撥函式呢?很多初學者都不是很明白,感覺懵懵的,不理解,更不會用!
其實簡單理解的話就是在一個函式執行完畢後,得到想要的特定資料後在去執行的函式,並沒有性藥中的那麼高深!
function getdata(callback){ //這裡我們假設是從後端獲取資料 setTimeout(function(){ //假設我們獲取到資料info var info = { "id":1, "name":'張三' } //得到資料以後執行函式方法 callback(info)//這個就是回撥函式 },1000)
上述程式碼就可以清除的告訴你什麼是回撥函式!可能你還是不太明白,這個callback是什麼,他有什麼作用呢?
getdata(check) function getdata(callback){ //這裡我們假設是從後端獲取資料 setTimeout(function(){ //假設我們獲取到資料info var info = { "id":1, "name":'張三' } //得到資料以後執行函式方法 callback(info)//這個就是回撥函式 },1000) } function check(data){ if(data.id==1){ console.log('驗證成功,可以通過') } }
看上面的程式碼,有兩個方法,getdata和check,我們執行了getdata方法,並把check當做引數傳給了getdata,那麼這時候check就是回撥函式!
那麼這個回撥函式有什麼作用呢,怎麼用呢?如果你已經理解了回撥函式的意義,那麼你將很好的理解他的用法,記憶怎麼在實際專案中去用他!
看下面的程式碼,我寫的一種實際應用中的用法:
//vue框架的應用,其他框架的可以自行修改!!! //使用者許可權驗證例項: created(){//在這個鉤子函式中取執行獲取資料的方法,將驗證方法作為回撥傳入 getdata(check) } methods:{//在這裡面,首先你得有created鉤子函式中用到的那兩個方法 function getdata(callback){//向後端請求使用者資訊 //這裡我們假設是從後端獲取資料 setTimeout(function(){ //假設我們獲取到資料info var info = { "id":1, "name":'張三' } //得到資料以後執行函式方法 callback(info)//這個就是回撥函式,得到使用者資訊後去驗證他的許可權 },1000) } function check(data){//驗證使用者許可權 if(data.id==1){//驗證許可權的條件,根據實際設定 console.log('驗證成功,可以通過')//許可權通過,可以做什麼 }else{ console.log('驗證失敗,禁止通行')//沒有許可權,可以做什麼 } } }