JavaScript中的回調(diào)無(wú)處不在,尤其是使用異步方式。因此理解回調(diào)函數(shù)就是第一步,以下是自己寫的一個(gè)測(cè)試的示例。
//test,測(cè)試回調(diào)函數(shù)
console.log('this is the test 1');
function step1(callback){
console.log('step1');
//callback();
//function toString(){
//? return 'step1';
//}
return function(){
console.log('callback1');
return callback;
};
}
function step2(callback){
console.log('step2');
//function toString(){
//? ? return 'step2';
//}
//callback();
return function(){
console.log('callback2');
return callback;
};
}
function step3(){
console.log('step3');
}
step1(step2)()(step3)()();
//關(guān)于上面一行的分步說(shuō)明
var s1 = step1(step2);//返回step1匿名函數(shù)
console.log(s1.toString());
var s2 = s1();//執(zhí)行匿名函數(shù),返回step2
console.log(s2.toString());
console.log(s2 == step2);//true
var s3 = s2(step3);//返回step2的匿名函數(shù)
console.log(s3.toString());
var s4 = s3();//執(zhí)行匿名函數(shù),返回step3
console.log(s4.toString());
console.log(s4 == step3);//true
s4();
console.log('test 1 end');