虽然自己会写回调函数,但是老是搞不清概念。今天来彻底搞懂回调函数。
回调函数:将一个函数当成另一个函数的参数,并在这个函数体中去调用。应该是在特定的条件下去调用。
题目:给一个人起名字,然后再叫出他的名字
逻辑或思路:先起名字: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);