call、apply和bind的作用以及区别:(参考pink老师讲解)

相同之处:

他们都可以改变函数内部this的指向

区别:

①call和apply会调用函数,并且改变函数内部的this指向

②call和apply主要的区别其实就是传递的参数不一样,如果你传递的是普通的参数a,b,c,d等就用call,而apply必须是以数组的形式传递【arr】

③bind不会调用函数,可以改变函数内部的this指向

主要应用的场景:

①call经常用来做继承

②apply经常跟数组有关系,比如借助数学对象实现数组最大值最小值查找问题

③bind不会调用函数,但是能够改变this指向,改定时器的指向,还有就是例如tab栏切换需要点击后才修改对应标签里面的值,可以通过bind实现,就不需要声明额外的变量浪费空间了。

注意:bind与上面两个还有不同之处,bind不但不会调用函数,他返回的还是原函数改变this之后产生的新函数,上面两种都是调用原函数,而我们得bind不但不调用还产生了原函数this改变之后的新函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值