bind、call、apply的区别是什么

bind、call、apply的区别是什么:它们的作用都是相同的,都是动态的修改当前函数内部环境对象this的指向。call和apply是改变后页面加载之后就立即执行,是同步代码。bind是异步代码,改变后不会立即执行;而是返回一个新的函数。

一、相同点

作用相同,都是动态修改this指向;都不会修改原先函数的this指向。

二、异同点

1、执行方式不同:

call和apply是改变后页面加载之后就立即执行,是同步代码。

bind是异步代码,改变后不会立即执行;而是返回一个新的函数。

2、传参方式不同:

call和bind传参是一个一个逐一传入,不能使用剩余参数的方式传参。

apply可以使用数组的方式传入的,只要是数组方式就可以使用剩余参数的方式传入。

3、修改this的性质不同:

call、apply只是临时的修改一次,也就是call和apply方法的那一次;当再次调用原函数的时候,它的指向还是原来的指向。

bind是永久修改函数this指向,但是它修改的不是原来的函数;而是返回一个修改过后新的函数,此函数的this永远被改变了,绑定了就修改不了。

来源:https://blog.csdn.net/weixin_48524561/article/details/124567266

延伸阅读

实例变量是什么

实例变量(也被称为成员变量或字段)是在面向对象编程中使用的术语,它表示某个类的对象实例的属性或状态。每个类的对象实例都有其自己的实例变量集合,而且一个实例的变量值不会影响另一个实例的变量值。

文章标题:bind、call、apply的区别是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53575

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.Z的头像E.Z
上一篇 2023年5月31日
下一篇 2023年5月31日

相关推荐

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部