雖然自己會寫回調函數,但是老是搞不清概念。今天來徹底搞懂回調函數。
回調函數:將一個函數當成另一個函數的參數,并在這個函數體中去調用。應該是在特定的條件下去調用。
題目:給一個人起名字,然后再叫出他的名字
邏輯或思路:先起名字:getName();在叫出名字:sayName();
在叫出其的名字之前,是不是要先有名字。在這里的條件就是名字,你沒有名字,你怎么去叫出其的名字呢?
簡易版本:
function sayName(name,callback){
this.name=name;
callback(name)
}
function getName(name){
if(this.name=="komolei"){
console.log(this.name,"success");
}
else{
console.log("fail");
}
}
sayName("komo",getName); //結果為fail;
sayName("komolei",getName) //komolei ,success
在這里。getName這個函數就是sayName函數的回調函數。getName被當成參數,在sayName中調用。
es6版本
const sayName=(name,callback)=>{ this.name=name;callback()}
const getName=(name)=>{if(this.name=="komo"){console.log("success")}
else{console.log("fail")}}
getName("komolei",sayName);