全面解析js的回调函数

回调函数原理:“我先睡会,醒了给你打电话”。这是一个异步的流程,“我睡觉”这个过程中(函数执行),“你”可以去做任何事,“睡醒了”(函数执行完毕)“打电话给你”(回调)进行之后的流程。

1、基本方法

<pre>function doSomething(cb) {
cb('param1', 'param2', 'param3');
}
function callback(a, b, c) {
console.log(a + ' ' + b + ' ' + c);
}
doSomething(callback);</pre>

2、匿名函数

<pre>function doSomethind(option, cb) {
console.log(option);
if(typeof cb == 'function') cb();
}
doSomethind('回调函数', function() {
console.log('result');
});</pre>

3、使用javascript的call方法

(1)基本用法
<pre>function person(name) {
this.name = name;
}
person.prototype.doSomething = function(cb) {
cb.call(this);
}
function callback() {
console.log(this.name);
}
var p = new person('Jack');
p.doSomething(callback);</pre>

(2)传入参数
<pre>function person(name) {
this.name = name;
}
person.prototype.doSomething = function(cb, params) {
cb.call(this, params);
}
function callback(params) {
console.log(params + ' ' + this.name);
}
var p = new person('Jack');
p.doSomething(callback, 'Hi');</pre>

4、使用 javascript 的 apply 传参数

<pre>function person(name) {
this.name = name;
}
person.prototype.doSomething = function(cb) {
cb.apply(this, [1, 2, 3, 'Hi']);
}
function callback(one, two, three, hi) {
console.log(one + ' ' + two + ' ' + three + ' ' + hi + ' ' + this.name);
}
var p = new person('Jack');
p.doSomething(callback);</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,387评论 2 17
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 10,997评论 0 106
  • //Clojure入门教程: Clojure – Functional Programming for the J...
    葡萄喃喃呓语阅读 9,235评论 0 7
  • 我在山东曲阜车站上车时,看到十几名士兵,身背各自的行装,排成一列,按照车站工作人员指定的位置,安静地等候上车。列车...
    imosa阅读 1,198评论 0 0
  • 它出生2015年11月,刚设计的时候谁也想不到它会这么火,就像微信一样。腾讯总有他的厉害之处,每几年都有一款爆款。...
    破不破吧阅读 1,324评论 0 0

友情链接更多精彩内容