apply、call和bind的区别

转自:apply、call和bind的区别

问了一下,这么三个函数的作用是什么?这么三个函数的作用就是调整上下文,即this的指向。在js中,this的指向是琢磨不定的,往往有四条规律可以总结它,

  1. 在全局空间中调用函数,this往往会指向window,而在严格模式下,会指向undefined。
  2. 在对象的方法中调用this,往往会指向该对象,但是这种方式很容易造成this的隐性丢失
  3. 显示调用,即使用apply、call、bind等对this进行显式指向,this会指向指定的元素。
  4. new构造函数时的this,会指向新生成的实例。

在讲讲它们之间的区别:
apply和call的区别是,apply只接受两个参数,一个是this的指向参数,另一个则是数组类型的参数;而call后面可以接受多个参数。
bind和前两者的区别就是bind绑定完之后,函数并不直接运行,并且bind的绑定是硬绑定,无法被修改;而前两者绑定完之后,直接调用函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值