js回调函数

回调函数是什么?

背景介绍:

先不说官方的理解,把回调应用都生活场景中就是,你和你女朋友分别的时候对她说“到家后打电话给我,不然我会担心的”,然后她到家后就真的打了电话给你。在这个例子中,分了下面几个步骤,你让你女朋友回家后打电话给你就是 登记回调函数,打电话就是回调函数, 你女朋友到家到叫做触发了回调关联的事件,她打电话给你叫做调用回调函数,你接通了她的电话叫做响应回调事件;

回调函数是一种编程手段,可以理解成被作为函数参数传递的函数对象。在JavaScript中function是内置的类对象,function是一种对象,可以储存在变量中通过参数传递给别的function,在函数内部创建返回结果值;

简单的js例子:

var friends = ["Mike", "Stacy", "Andy", "Rick"];

 

friends.forEach(function (eachName, index) {

alert(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick

});

1、这个例子中传递了一个匿名函数给forEach方法,作为它的参数;

2、定义一个带名称的函数,并将函数名作为参数传递给另外一个函数,

3、使用含有this对象的方法时,必须要修改this的指向问题;

上面这个例子中定义了一个含有属性和方法的对象,一个包含回调函数的getUserInput传入三个参数的方法,调用这个函数的时候传入了两个string字符串和一个clientData对象上的方法;接着打印出fullname的属性值,并不像我们预期想的改变了,打印出来的结果还是初始值,这是因为getUserInput方法是全局函数,当调用回调函数的时候this的指向是全局,而不是 clientDate 的作用域 ,所以这个时候用window对象能获取到改变的属性值;也就是Barack Obama,

改变this的指向可以使用每个函数都自带的call( ) , apply( ) 两个方法,他们的作用是能在特定的作用域调用函数,也就是能够改变this对象的指向,他接受的两个参数,第一个参数是在哪个作用域中运行函数,第二个参数是参数数组(也就是需要传入运行函数的参数值);  

1、使用回调函数需要注意什么?

避免过多的嵌套,否则回造成代码难维护和晦涩难懂。

2、使用回调函数有什么好处?

具有灵活性,虽然也可以在函数内调用函数,但是这样的固定性比较大,如果使用回调函数的话,被调用的函数就具有了灵活性。

3、什么场景下较多的使用回调函数?

异步变成的话一般都要使用回调函数来处理异步结果返回的值

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值