一直不是很明白在js中callback.call()和callback() 有什么区别,举个例子:
function a(){
alert('hello!');
}
function b(callback){
callback();
}
function c(callback){
callback.call();
}
function test(){
b(a);
c(a);
}
在test函数中,b和c的效果是一样的,都执行了回调函数a.
那么这两种用法有什么区别呢?
js中callback.call()和callback()的区别
答案:2 悬赏:30 手机版
解决时间 2021-02-07 18:56
- 提问者网友:心如荒岛囚我终老
- 2021-02-07 14:31
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-02-07 14:59
callback是回调函数。函数有call和apply方法。可以在函数执行时动态的绑定上下文。
因为你这里callback.call()没有传入任何参数。因此callback.call()跟callback()是等价的。没有任何不同。
函数的上下文主要影响函数中的this对象。
正常情况下this对象是根据运行上下文自动指定的。
但是用call方法或者apply方法可以手动设置上下文。相当于可以随意调整函数中的this对象指向谁。
因为你这里callback.call()没有传入任何参数。因此callback.call()跟callback()是等价的。没有任何不同。
函数的上下文主要影响函数中的this对象。
正常情况下this对象是根据运行上下文自动指定的。
但是用call方法或者apply方法可以手动设置上下文。相当于可以随意调整函数中的this对象指向谁。
全部回答
- 1楼网友:傲气稳了全场
- 2021-02-07 15:31
callback是一个函数对象。
callback.call是这个函数对象的一个方法。
假如callback这个函数有3个参数a,b, c
你可以用以下3种方法执行它
callback(a,b,c)
callback.call(null,a,b,c)
callback.apply(null,[a,b,c])
其中null的位置传的是函数内部所使用的this。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯