apply、call、bind比较

apply、call 区别


 对于apply、call二者而言,作用完全一样,都是改变函数this的指向,只不过接收的参数不一样。

通过如下调用:

bind


 bind方法与apply和call相似,也是可以改变函数内的this指向。

bind方法会创建一个新函数,称为绑定函数,需要调用才能执行。

这里我们创建了一个新的函数,当使用 bind 创建一个绑定函数之后,它被执行的时候,它的 this 会被设置成 foo,而不是像我们调用 bar() 时的全局作用域。

bind、apply、call比较


 bind方法与apply和call相似,也是可以改变函数内的this指向。

 

三个都输出81,但是bind()方法后边多了对括号。

也就是说,当你希望改变上下文环境之后并非要立即执行,而是回调执行的时候,使用bind()方法。而apply\call则会立即执行函数。

总结

  1. apply、call、bind三者都是改变函数this的指向;
  2. allpy、call、bind三者第一个参数都是this要指向的对象。
  3. apply、call、bind三者都可以利用后续参数传参。
  4. bind返回对应函数,便于稍后调用;apply、call则是立即调用。

 

转载于:https://www.cnblogs.com/chailuG/p/11347066.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值