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

来源:互联网 发布:小米电视有线网络设置 编辑:程序博客网 时间:2024/05/22 10:27

一直不是很明白在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对象指向谁。

0 0
原创粉丝点击