JS改变函数this的指向


前言

 JavaScript 中还允许指定函数中 `this` 的指向,有 3 个方法可以动态指定普通函数中 `this` 的指向


一、改变this指向的三个方法

1.call

2.apply

3.bind

二、使用步骤

1.call

  1. call 方法能够在调用函数的同时指定 this 的值

  2. 使用 call 方法调用函数时,第1个参数为 this 指定的值

  3. call 方法的其余参数会依次自动传入函数做为函数的参数

代码如下(示例):

2.apply

  1. apply 方法能够在调用函数的同时指定 this 的值

  2. 使用 apply 方法调用函数时,第1个参数为 this 指定的值

  3. apply 方法第2个参数为数组,数组的单元值依次自动传入函数做为函数的参数

代码如下(示例):

 


3.bind

bind 方法创建新的函数,与原函数的唯一的变化是改变了 this 的值。

bind不会回调函数 一般用于延时函数改变this指向 

总结

call:fun.call(this,arg1, arg2,......)
apply:fun.apply(this, [arg1, arg2,......])
bind:fun.bind(this, arg1, arg2,......)

相同点:
    都可以用来改变this指向,第一个参数都是this指向的对象
区别:
    call和apply:都会使函数执行,但是参数不同
    bind:不会使函数执行,参数同call

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值