回調函數,什么是回調函數呢?很多初學者都不是很明白,感覺懵懵的,不理解,更不會用!
其實簡單理解的話就是在一個函數執行完畢后,得到想要的特定數據后在去執行的函數,并沒有性藥中的那么高深!
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('驗證失敗,禁止通行')//沒有權限,可以做什么
}
}
}