永发信息网

js中callback.call()和callback()的区别

答案:2  悬赏:30  手机版
解决时间 2021-02-07 18:56
一直不是很明白在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.
那么这两种用法有什么区别呢?
最佳答案
callback是回调函数。函数有call和apply方法。可以在函数执行时动态的绑定上下文。

因为你这里callback.call()没有传入任何参数。因此callback.call()跟callback()是等价的。没有任何不同。

函数的上下文主要影响函数中的this对象。

正常情况下this对象是根据运行上下文自动指定的。

但是用call方法或者apply方法可以手动设置上下文。相当于可以随意调整函数中的this对象指向谁。
全部回答
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。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
肛门上长了个小肉瘤
聚点网络地址在什么地方,我要处理点事
液化气热水器12升电热水器60升每天三个人洗澡
单机版win10大富翁4求助
鲢鱼喜欢吃什么饵?
大学英语四六级有没有大小年的
下雨拿着苹果手机会不会遭雷劈,他的边框是铁
明扬乡村美食地址有知道的么?有点事想过去
汏霖汽车服务中心在哪里啊,我有事要去这个地
和女朋友去上海市区玩一天,吃饭,看电影等要
帮我配一套金毛日常生活用品
飞天第二网咖中心地址在什么地方,我要处理点
英国VK卫裤怎么看真假
【一路阳光】一路阳光 作文
万家广告这个地址在什么地方,我要处理点事
推荐资讯
雅堂小超华联超市帅甜副食店这个地址在什么地
柯桥那里纹眉毛好看,有几个朋友是齐老师纹的
CIANT的自行车是什么牌子
移动空调总是每次插电自动开机,然后就制冷三
修改qq密码有动态密码怎么破解
下列是近地面风带形成全球洋流系统的主要动力
打造世界怎么从第1个世界穿送到第2个世界
我有一个朋友,我不愿意理他我怎么回决他,他
未成年人结伴出门旅行需要注意什么?怎么说服
朝阳轿车轮胎(枣园路华强门业旁)地址在什么地
天都大酒店三楼演绎厅地址在什么地方,我要处
千金宝贝在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?