js中的回调函数
A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。
回调函数(b):以参数形式传给函数a
function a(callback)
{
alert("我是parent函数a!");
alert("调用回调函数");
callback();
}
function b(){ // 这是一个回调函数,使用时将函数b当作参数传递
alert("我是回调函数b");
}
function c(){
alert("我是回调函数c");
}
function test(){
a(b);
a(c);
}
一
function say (value) {
alert(value);
}
function execute (someFunction, value) {
someFunction(value);
}
execute(say, 'hi js.'); //将say方法作为参数传递给execute方法
/*这里的say方法就是回调函数
这里的execute方法接收了两个参数。第一个参数是say ,第二个参数是"hijs.'。
这里的第二个参数其实就是say方法所需要的参数。
这样写就叫做将回调函数的参数作为与回调函数同等级的参数进行传递*/
function say (value) {
alert(value.name); //回调函数需要一个参数value ,这个value是一个对象 ,拥有属性name
}
function execute (someFunction) { //可以理解为给soneFunction 也就是传进来的参数传参
var value = { name: 'hi js.'};
someFunction(value);
}
execute(say); //execute函数是主函数,参数为say函数本身,这里的say也叫做回调函数
二
function execute (someFunction, value) {
someFunction(value);
}
execute(function(value){alert(value);}, 'hi js.');//将匿名函数作为参数传递给execute方法
总结
function say (value) {
alert(value);
}
say;
//直接写say方法的方法名与下面的匿名函数可以认为是一个东西
function (value) {
alert(value);
}
java类中的回调函数
类A的a()方法调用类B的b()方法
类B的b()方法执行完毕主动调用类A的callback()方法
回调的核心就是回调方将本身即this传递给调用方
也就是上图 a()
将this 传递给 b()
下图是一个学生使用计算器需求帮助的代码,设计回调