javaSccript---call()、 bind()、 apply()的区别

news2024/12/27 11:15:20

call()、apply()、bind() 都是用来重定义 this 这个对象的

语法:

function.apply(thisArg, [argsArray])//argsArray 是一个可选的数组

function.call(thisArg, arg1, arg2, ...)//arg1、arg2、... 是将传递给函数的参数列表

function.bind(thisArg, arg1, arg2, ...)//arg1、arg2、... 是一些可选的参数,这些参数将在调用新函数时作为参数列表传递给原函数

function test(a, b) {
  console.log(a + b);
}
test.call({ name: "call" }, 1, 2); //3
test.apply({ name: "apply" }, [2, 3]); ///5
const test1 = test.bind({ name: "bind" }, 4);
console.log(test1); //[Function: bound test]
test1(2); //6

相同点:第一个参数thisArg 表示函数要绑定的上下文,是用来改变函数this指向的,第二个参数是是用于传参

不同点:

call 和apply可以直接调用,bind不会立即调用函数,而是会返回一个新的函数

call和bind可以传递多个参数,apply只能传递一个参数 (数组或者伪数组)

JavaScript 中 call()、apply()、bind() 的用法 | 菜鸟教程其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例 1 obj.objAge; // 17 obj.myFun() // 小张年龄 undefined 例 2 shows() // 盲僧 比较一下这两者 this 的差别,第一个打印里面的 this 指向 obj,第二个全局声明的 shows() 函数 this 是 window ; 1,call()、appl..https://www.runoob.com/w3cnote/js-call-apply-bind.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/422177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Webstorm是什么软件?你了解吗

WebStorm 是一款由 JetBrains 开发的集成开发环境(IDE),它是专门为开发 Web 应用程序而设计的。它提供了许多功能,例如代码自动完成、错误突出显示、重构、调试、版本控制等,可以帮助开发人员提高效率和代码质量。WebS…

Vector 高性能日志收集工具

文章目录Vector 简介相关概念事件Data modelEvent typesLog eventsMetric eventsTraces组件构成源转换接收器PipelineBuffersBackpressureRolesAgentDaemonSidecarAggregatorTopology分布式集中式基于流Vector 简介 Vector 是一种高性能的可观察性数据管道,可让组织…

天梯赛练习集-L1-031到L1-040–python - java

文章目录PythonL1-031 到底是不是太胖了L1-032 Left-padL1-033 出生年L1-034 点赞L1-035 情人节L1-036 A乘以BL1-037 A除以BL1-038 新世界L1-039 古风排版L1-040 最佳情侣身高差JavaL1-031 到底是不是太胖了L1-032 Left-padL1-033 出生年L1-034 点赞L1-035 情人节L1-036 A乘以B…

ChatGPT入门必知必会

2023年是真正意义上的AI之年,因为ChatGPT 2007年,iPhone开启了智能手机时代,2023年,我们迎来了人工智能时代,我们正处于历史的大转折点上,这也许是启蒙运动级别的思想和社会转折,工业革命级别的…

5万元内最经济双卡4090深度学习方案

深度学习双卡4090攒机方案 znsoft 一枚快乐的炼丹师 AMD 7950x 双4090方案 不到5万,目前最经济的双卡人工智能服务器方案 主板: 华硕 x670EA 吹雪 3000元 CPU: amd 7950x 3500元 内存: 32G4 128G DDR5 800x4 3200元 机箱: 追…

【eMMC学习记录】emmc相关名词解释和基础概念

名词解释 NAND Flash:半导体闪存 HDD:机械硬盘 FW:固件 Peak Power:峰值功率 Active Power:读写功耗 Idle Power:空闲功耗 standby/sleep Power Dev Sleep Power:SSD内部休眠功耗 RAM:掉电丢失数据 FGT:浮栅晶体管 FormFactor:尺寸标准件 AFA:全闪存整列…

线段树之延迟数组_20230410

线段树 之 延迟数组 前言 线段树是一类特殊的完全二叉树,其本质是对递归过程信息的再处理和再记忆,线段树构造完成后,可以脱离原始数组或线性表,直接对线段树进行查询或更新操作即可。线段树的储存结构和堆结构类似,…

springboot——集成elasticsearch进行搜索并高亮关键词

目录 1.elasticsearch概述 3.springboot集成elasticsearch 4.实现搜索并高亮关键词 1.elasticsearch概述 (1)是什么: Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。 Lucene 可以被认为是迄今为止最先进、性能最好的…

软测界的黑科技,难道不来瞧瞧?

写在前面: 在当今互联网时代,软件已经渗透到了人们生活的方方面面,各种类型的软件应运而生,为人们的工作和生活提供了更便捷的服务。然而,随着软件的不断增长和复杂性的不断提高,软件测试变得越来越重要。…

字节跳动AI-LAB | 算法三轮技术面分享

作者 | 太蔡了整理 | NewBeeNLP面试锦囊之面经分享系列,持续更新中 可以后台回复"面试"加入交流讨论组噢写在前面楼主是C9末流渣硕一枚,现在已经正式确定offer要去我宇宙条了!当时为了准备面试几乎把网上头条的面经翻了个底朝天&am…

php(phar)反序列化漏洞及各种绕过姿势

概念: 序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。简单来说就是我在一个地方构造了一个类,但我要在另一个地方去使用它,那怎么传过去呢?于是就想到了序列化这种东西&a…

句柄泄露的分析思路

基础知识 问题 什么是句柄? 句柄(file descriptor)即文件描述符,简称fd。Linux 系统中,把一切设备都视作文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符。 FD作为文件句柄的实例,…

Nacos安装配置

一、下载Nacos Server。 通过Release页面进行下载,这里我以windows版本为例。 二、修改Nacos Server配置文件。 下载完成后,解压安装包后得到如下文件夹 为了配置集群,将nacos-server复制相同的两份,分别为命名为nacos-clust…

Java中有了equals(),为什么还有“==“

背景:Java中“一切皆是对象”,为什么还有非对象的“”? 在Java语言假设我们只进行OOP,所以Java代码都是由一个接着一个的类组成的。那么,对象之间比较,用equals()就可以了。 可为什么“”在代码随处可见呢…

海尔智家业绩尚可,但其智能家居“全场景”没做起来

‍数据智能产业创新服务媒体——聚焦数智 改变商业近日,海尔智家发布了其2022年年报,数据显示,2022年海尔智家实现收入2435.14亿元,同比增长7.2%;扣非归母净利润139.63亿元,同比增长18%,利润增…

消息队列kafka及zookeeper机制

目录 一、zookeeper 1、zookeeper简介 2、zookeeper特点 3、zookeeper工作模式及机制 4、zookeeper应用场景及选举机制 5、zookeeper集群部署 ①实验环境 ②安装zookeeper 二、消息队列kafka 1、为什么要有消息队列 2、使用消息队列的好处 3、kafka简介 4、kafka…

多模态模型学习1——CLIP对比学习 语言-图像预训练模型

多模态模型学习1——CLIP对比学习 语言-图像预训练模型学习前言什么是CLIP模型代码下载CLIP实现思路一、网络结构介绍1、Image Encodera、PatchPosition Embeddingb、Transformer EncoderI、Self-attention结构解析II、Self-attention的矩阵运算III、MultiHead多头注意力机制IV…

maya arnold自定义aov分层灯光组添加方法

一、问题描述: maya的arnold aov层灯光组(Light groups)运用有两种方法,总结一下使用笔记。灯光效果如下图: 二、制作过程: 1、灯光的布局主要用了两盏区域光,主光和辅助光。如下图: 2、主光为白色&am…

windows10下VS2019编译jpegsrc.v9e.tar.gz为lib静态库(已验证)

一、下载jpegsrc 1、下载JPEG库的源代码 http://www.ijg.org/files/ 2、这里使用最新的jpegsr9e.zip ,别下载错误了(jpegsrc.v9e.tar.gz 是RAM架构的仅支持32位) 3、解压jpegsr9e.zip到d盘,如:D:\jpeg-9e 二、vs2019…

【Blender 水墨材质】实现过程简单剖析

写在前面 想把Blender一位大佬演示的Blender水墨材质过程,在Unity用Shader重现,过程中会拿能拿到的节点代码举例(ShaderGraph或者UE的都会有)。第一步当然是要跟着人家做一遍!我会尽可能地分析一下每一步的原理~ 教程…