1. 程式人生 > >回撥函式理解(轉載)

回撥函式理解(轉載)

 想要詳細理解回撥函式的內容還需要理解與javascript單執行緒和非同步相關知識。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button id="btn" onclick="btnOnClick()">按鈕</button>
<script>
    function
printText(){ 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('驗證失敗,禁止通行')//沒有許可權,可以做什麼
  }
}
 }