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.ZE.Z认证作者
上一篇 2023年5月31日
下一篇 2023年5月31日

相关推荐

  • Java中的微服务架构是什么

    探讨Java微服务架构,本质是将传统单体应用解构为更小、自治的服务集合,每个服务独立部署,互不依赖。关键要点包括:1、服务自治、2、独立部署、3、轻量级通信协议、4、去中心化的数据管理。服务自治强调每个服务拥有独特业务功能,并可独立更新与替换,而独立部署意味着每个服务单独运作,不会相互干扰,确保了系…

    2024年1月8日
    22900
  • 物理机、虚拟机、容器的区别是什么

    物理机、虚拟机、容器的区别是:物理机对应采购的服务器设备,又叫裸设备。虚拟机与现在流行的“云计算”的概念的有着紧密联系,虚拟机的概念在IaaS层,即基础设施即服务部分,容器,也是虚拟层的概念,相对虚拟机而言,容器更加轻量级。 物理机 物理机,对应采购的服务器设备,又叫裸设备,bare metal,随…

    2023年2月13日
    80600
  • 项目中的风险如何实施管理

    在项目管理中,风险实施管理的关键在于确立一个全面的风险管理计划、持续的风险识别和分析、制订风险应对策略,以及对风险控制和通讯的连续改进。其中,制订风险应对策略是核心,因为它直接决定了项目如何面对潜在的挑战和不确定性,确保项目目标的实现。 一、确立风险管理计划 确立风险管理计划是风险管理的基础。它描述…

    2024年4月10日
    4900
  • 国内oa办公系统品牌排名

    根据“国内OA办公系统品牌排名”直接切入话题。国内OA办公系统市场表现多元化,几家领先品牌展露头角。如1、用友软件,2、金蝶国际软件集团,3、泛微网络,4、致远互联,5、明源云。特别是用友软件,在OA系统领域具有强大的市场影响力以及广泛的客户基础。用友软件不仅提供企业内部的文档管理、信息流通和工作流…

    2024年1月15日
    46700
  • 科研实验室管理系统

    科研实验室管理系统是一套集实验规划、资源调配、安全监督、数据分析与项目协同于一体的综合性平台。1、提高实验室作业效率2、保障实验室安全3、管理实验数据4、优化资源分配5、促进团队协作。实验室作业效率直接关系到科研进度与质量。该系统能够明显提高效率,通过自动化与信息化手段,实现实验流程的优化,减少手动…

    2024年1月9日
    25600
  • 为什么vscode这么难用

    VS Code(Visual Studio Code)对一些用户来感到难用的原因主要包括:界面复杂、扩展众多、高度自定义性、学习曲线陡峭。界面复杂是很多初学者面临的主要难点。VS Code是一个强大的编辑器,它提供了许多高级功能,如内置Git支持、智能代码补全、代码调试等。这些丰富的功能导致了它的界…

    2024年4月3日
    10200
  • “算法” algorithm 跟“方法” method 有什么区别

    区别:“算法” algorithm为任何良定义的具体计算步骤的一个序列,常用于计算、数据处理和自动推理。算法是一个表示为有限长列表的有效方法。 “方法” method是指定了如何发送表单数据到action属性所指定的页面。表单数据可以作为 URL 变量method=”get”…

    2023年2月14日
    1.0K00
  • devops研发管理平台

    DevOps研发管理平台强调开发与运维的协同,通过制定明确的流程与持续集成(CI)和持续部署(CD)来优化软件交付。该平台的特性包括自动化操作、提高研发效率、保障软件质量与安全性、便捷的团队协作和反馈机制1、2、3、4、5。自动化操作机制能显著减少人为错误,是这类平台的显著优势。 自动化操作减少了复…

    2024年1月10日
    28000
  • 什么是深度学习

    深度学习是机器学习领域中的一个子领域,它通过模拟人脑的神经网络结构,处理和分析大量数据。这种技术的核心是深度神经网络,通常含有多个隐藏层,能够从数据中学习复杂的模式和表示。它在图像识别、自然语言处理、声音识别等众多领域都取得了突破性的成果。 深度学习是机器学习领域中的一个子领域,它通过模拟人脑的神经…

    2023年7月30日
    63100
  • 什么是项目管理的核心

    项目管理的核心包括1. 明确的目标与绩效指标、2. 恰当分配的资源、3. 高效通畅的沟通渠道、4. 灵活适应的变更处理、5. 紧密协作的团队精神、6. 综合运用的工具与技术。其中,明确的目标与绩效指标 是确保项目沿着预定路径前进并顺利完成的根基,目标为项目团队提供的方向指引;而绩效指标则用于衡量进展…

    2024年1月8日
    32000

发表回复

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

400-800-1024

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

分享本页
返回顶部