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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年5月31日
下一篇 2023年5月31日

相关推荐

  • mysql如何删除一列

    在MySQL中删除一列涉及使用ALTER TABLE命令,结合DROP COLUMN子句。这个过程包括三个主要步骤:1、确定要删除的列名和表名;2、构造并执行ALTER TABLE命令;3、验证更改。其中,构造并执行正确的SQL命令是关键步骤。本文将详细介绍如何在MySQL中删除一列,并提供相关注意…

    2023年8月16日
    7400
  • 公司使用 jira 破解版会带来哪些隐患和风险

    使用Jira破解版有什么隐患和风险包括:1.破解版软件让企业遭受病毒攻击,丧失信息安全保障;2.使用破解版软件,公司有法律风险,上市一票否决;3.盗版软件无法享受技术服务(升级、技术支持、培训);4.使用盗版软件构成不正当竞争。 一、使用Jira破解版的一些原因 Jira 是全球知名的软件研发项目管…

    2023年2月6日
    43800
  • 前端开发的app和后端开发的app有什么区别

    前端开发的app和后端开发的app的区别有:1、职责不同;2、技术栈不同;3重点不同;4、协作不同。职责不同是指,前端开发主要关注用户界面和用户体验,后端开发主要关注后台逻辑和数据处理。 一、前端开发的App 前端开发主要负责移动应用的用户界面和用户体验。前端开发人员使用HTML、CSS和JavaS…

    2023年7月30日
    10700
  • 每日计划软件有什么

    每日计划软件有:1、有道云笔记;2、滴答清单;3、讯飞语记;4、千本笔记;5、暖暖手账;6、记事本;7、计划表。有道云笔记是一款多平台的记录工具,可以通过文档、扫描、语音、收藏等方式进行记录。 一、有道云笔记 有道云笔记是一款多平台的记录工具,可以通过文档、扫描、语音、收藏等方式进行记录。书本中的内…

    2023年4月21日
    31600
  • 网卡和路由器有哪些区别

    网卡和路由器的区别有:1、主体不同;2、特点不同;3、功能不同。网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用。 1、主体不同 网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属…

    2023年1月31日
    17600
  • 什么是项目管理模式

    项目管理模式是一种用于规划、执行和控制项目的方法。它是一种系统性的方法,旨在确保项目能够按时、按预算和按要求交付。项目管理的三种典型模式分别是:一、工程总承包(EPC)模式;二、项目管理服务(PM)模式;三、项目管理总承包(PMC)模式。 项目管理模式是一种用于规划、执行和控制项目的方法。它是一种系…

    2023年4月30日
    20300
  • 如何做项目管理计划

    做项目管理计划的步骤:一、列出项目清单;二、分解项目计划;三、列出清晰的时间表;四、及时调整;五、进行风险分析;六、检查最终项目计划。项目管理的方法各异,但无论何种行业、项目大小,制定项目计划前准备一个项目清单是基础工作。 一、列出项目清单 项目管理的方法各异,但无论何种行业、项目大小,制定项目计划…

    2023年3月31日
    7200
  • return 和 return false区别在哪

    return 和 return false的区别是:return 是指在类型为void类型中程序的返回值,而return false是指在bool类型的函数中一种返回值,还可以返回true(return true)。return 和 return false 都会在函数内部阻止程序的执行。但retu…

    2023年2月13日
    21900
  • 有哪些知识库平台

    知识库平台有:一、PingCode Wiki;二、Baklib;三、飞书知识库;四、Notion;五、有道云笔记。PingCode Wiki是和腾讯文档、飞书文档等大厂产品一样,做到了实时的意识传递(协同者光标)这一级别的知识库产品。 一、PingCode Wiki PingCode Wiki是和腾…

    2023年4月30日
    12300
  • 5700u和5800h的区别

    AMD Ryzen 7 5700U和Ryzen 7 5800H是AMD公司的两款不同类型的处理器,它们的区别主要在以下几个方面:1、设计和目标市场;2、核心和线程数量;3、功耗和性能。其中,5800H更多地面向性能强劲的笔记本电脑,而5700U更适用于轻薄便携设备。 1、设计和目标市场 AMD的U系…

    2023年8月4日
    83400

发表回复

登录后才能评论
联系我们
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部