js回调函数--callback
【摘要】 1. 回调函数是什么回调函数就是函数A执行完之后,有一个函数B用来做其他的事情。一般是将函数B,作为参数,传入到函数A中。 2.实现方法 2.1 使用命名函数function A(callback){ console.log("A执行") callback();}function B(){ //B是回调函数 console.log("B执行");}// 使用A(B); //这里的B...
1. 回调函数是什么
回调函数就是函数A执行完之后,有一个函数B用来做其他的事情。
一般是将函数B,作为参数,传入到函数A中。
2.实现方法
2.1 使用命名函数
function A(callback){
console.log("A执行")
callback();
}
function B(){ //B是回调函数
console.log("B执行");
}
// 使用
A(B); //这里的B没有括号。
// 输出
A执行
B执行
2.2 匿名回调函数
function A(num1, num2, callback){
var sum = num1 + num2;
callback(sum);
}
// 使用
A(1, 2, function(sum){
console.log(sum);
});
// 输出
3
3.使用含有this对象的回调函数
var obj={
name:"",
setName:function(name){
this.name=name;
}
}
function A(name,callback){
callback(name);
}
//调用
A('syl',obj.setName);
//检测
window.name;
输出:"syl"
//检测
obj.name;
输出:""
本来我们是希望obj的name是“syl”,但是却没有,这是因为A函数属于全局环境,导致name属性的也属于全局环境。所以我们需改变name的环境,即改变this的环境。
var obj={
name:"",
setName:function(name){
this.name=name;
}
}
function A(name,callback,obj){
callback.call(obj,name);
}
//调用
A('syl',obj.setName,obj);
//检测
window.name;
输出:""
//检测
obj.name;
输出:"syl"
一个很好的例子:
比如爬楼梯,你要成功爬上1楼,才能爬2楼,然后三楼
function floors(isSuccess,callback ){
if (isSuccess) { // 如果成功就执行回调函数
callback();
}
}
function pa1() { // 爬一楼
//todo: ...
console.log('爬一楼');
return true;
}
function pa2() {
//todo: ...
console.log('爬二楼');
return true;
}
floors(pa1(),function() {
floors(pa2(), function(){
floors(3, function(){
console.log('ok')
})
})
})
原文:https://blog.csdn.net/wangweiscsdn/article/details/84000826
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)