javascript中call()、apply()、bind()的用法

在统信UOS Server 20上踩坑记:手把手教你搞定openGauss 5.0.0企业版安装(附常见报错解决方案) 本文详细记录了在统信UOS Server 20上安装openGauss 5.0企业版的实战经验,包括环境准备、依赖库问题、目录权限、内存参数调优等常见问题的解决方案。通过伪装系统标识、建立软链接、调整内存参数等方法,成功克服国产操作系统与企业级数据库的兼容性挑战,为开发者提供了一份深度排雷指南。 阅读详情

先看明白下面:

  例1

  obj.objAge;  //17

  obj.myFun()  //小张年龄undefined

  例2
 

 shows()  //盲僧 

 

比较一下这两者this 的差别,第一个打印里面的this 指向obj,第二个全局声明的shows()函数   this 是window ;

 

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

  如:

  

  obj.myFun.call(db);    //德玛年龄99

    obj.myFun.apply(db);    //德玛年龄99

    obj.myFun.bind(db)();   //德玛年龄99

  以上出了bind 方法后面多了个 () 外 ,结果返回都一致!

  由此得出结论,bind 返回的是一个新的函数,你必须调用它才会被执行

 

  2,对比call 、bind 、 apply 传参情况下
  

  

  obj.myFun.call(db,'成都','上海');     //德玛 年龄 99  来自 成都去往上海

  obj.myFun.apply(db,['成都','上海']);        //德玛 年龄 99  来自 成都去往上海  

  obj.myFun.bind(db,'成都','上海')();         //德玛 年龄 99  来自 成都去往上海

    obj.myFun.bind(db,['成都','上海'])();   //德玛 年龄 99  来自 成都,上海去往undefined

  

   微妙的差距!

  从上面四个结果不难看出

    call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了:

    call的参数是直接放进去的,第二第三第n个参数全都用逗号分隔,直接放到后面  obj.myFun.call(db,'成都', ... ,'string' );

    apply的所有参数都必须放在一个数组里面传进去  obj.myFun.apply(db,['成都', ..., 'string' ]);

    bind除了返回是函数以外,它 的参数和call 一样。

    

    当然,三者的参数不限定是string类型,允许是各种类型,包括函数 、 object 等等!

拓展:

var arr = [1,8,6];
//求数组arr中的最大值
Math.max.apply(Math, arr); //8
Math.max.call(Math, 1,8,6); //8
Math.max.call(Math, arr); //NaN
Math.max.bind(Math, 1,8,6)(); //8

 

MATLAB Appdesigner开发独立桌面App全流程(一):以打开串口功能为例介绍Appdesigner的基本使用 本文详细介绍了Appdesigner的基本使用,以串口功能为例介绍按钮回调函数的实现以及控件之间通信的问题 阅读详情

相关推荐

Arch Linux双系统安装避坑指南:从Windows分区到桌面环境全流程

本文提供了一份详尽的Arch Linux与Windows双系统安装避坑指南。内容涵盖从安装前的UEFI环境确认、BitLocker处理、分区规划,到Live环境进入、基础系统安装、GRUB引导配置,再到显卡驱动安装、KDE/GNOME桌面环境部署及中文化设置的全流程。重点解决了双系统安装中的核心痛点,帮助用户在不破坏现有Windows系统的前提下,顺利完成Arch Linux的安装。

nice1的博客 535

javascript中call()、apply()、bind()的用法终于理解

其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面:   例1 obj.objAge; //17 obj.myFun() //小张年龄undefined  例2   shows() //盲僧  比较一下这两者this 的差别,第一个打印里面的this 指向obj,第二个全局声明的shows()函数 this 是windo...

264

硬件学习笔记(器件篇)—— 磁珠与磁环

因为有这些差别,所有经常会让人们觉得他们并不是一类器件,但实际上他们的原理是一样的。我们使用磁珠是为了利用损耗消耗高频能量,所以如果我们理解了磁珠是如何消耗高频能量的,我们就能理解磁珠的工作原理。

y_u_yu_yu_的博客 1万+

call、apply、bind哪个性能更好

call() 方法调用一个函数, 其具有一个指定的 this值和分别地提供的参数(参数的列表)。apply()方法调用一个函数, 其具有一个指定的 this 值,以及作为一个数组(或类似数组的对象)提供的参数。bind() 函数会创建一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目标函数)具有相同的函数体(在 ECMAScript 5 规范中内置的call属性)。call的性能要比apply好一些,尤其是传递给函数的参数超过3个时所以后期开发的时候,可以使用call多一些。

subsistent的博客 424

SECS/GSM 测试工具 SecsExpress 的配置与实战应用

本文详细介绍了半导体设备通讯测试工具SecsExpress的配置与实战应用。作为专业的SECS/GSM协议调试工具,它能模拟Host与设备端进行双向测试,帮助工程师快速部署、验证通讯链路,并高效排查与RMS系统或真实设备间的联调问题,是提升半导体工厂设备集成与维护效率的利器。

yhn456789的博客 299

odoo19/18集成reportbro 打印插件 完美支持静默打印

ReportBro设计器 一个用于创建PDF和XLSX报告模板的javascript插件。ReportBro Designer可以轻松集成到您的Web应用程序中。每个人都可以设计和编辑文档模板,并直接在浏览器中预览它们。可以使用服务器上的 (有关完整的文档和演示,请参阅上的ReportBro项目网站。reportBro官方没有提供。测试环境:odoo17社区版。2.产品标签打印设计。

zxltwins的博客 2774

js中call()方法的用法

1.call方法 语法:call(thisobj,[argq,arg2]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象 说明: call方法可以用来代替一个对象调用一个方法,call方法可以将一个函数的对象上下文从初始化改为新的对象,也就是括号里面的原本的对象改为call()前面的对象、即用thisobj代替call前面的东西,最终用thisobj这个对象去执行call前面的方...

qq_35810838的博客 3万+

从课堂笔记到动手实践:用Multisim仿真高频谐振功放(丙类)的完整流程

本文详细介绍了使用Multisim仿真高频谐振功放(丙类)的完整流程,从仿真环境准备到电路搭建、偏置网络设计、信号注入与波形观测,再到效率优化与性能验证。通过14个关键操作步骤,帮助读者将高频电子线路的理论知识转化为动手实践,深入理解丙类功放的非线性工作状态和效率优化技巧。

weixin_30701575的博客 521

JS中的 call( ) 方法

this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。 call.(thisOject, arg1 ,arg2 ...) 我们单独说说call(),因为apply()和call差不多,只不过apply第二个参数必须传入的是一个数组,而call 第二个参数可以是任意类型。 obj1.(method).call(obj2,argument1,ar...

小镇青年 7万+

N32串口DMA接收不定长数据:空闲中断与DMA通道的协同处理

本文详细解析了在N32系列MCU中,利用串口空闲中断与DMA通道协同处理不定长数据的核心机制与实战方法。通过剖析空闲中断的触发时机、DMA的配置要点以及两者协同工作的关键时序,提供了避免数据错乱的避坑指南和完整的代码实现,旨在帮助开发者构建高效、可靠的嵌入式串口通信子系统。

weixin_29191669的博客 125

数据可视化—power bi 基础操作汇总

数据来源: https://pan.baidu.com/s/1U_Y7rKfhnSKbLmh4FcUD_Q 提取码: yq5v 目录 基本功能与视图 编辑与查询—修改column案例 建立关联性 新增column与DAX完成总价运算 习题练习1:建立可视化图表 产品销售统计图 column拖曳可视化 1.基本功能与视图 ①基础操作界面 ②获取数据—以打开excel为例 ③数据文件基本视图 可视化形式:柱状图、数据、关联性 2.编辑与查询—修改column ①编辑与查询—数据处理界面 .

weixin_52730784的博客 2683

JavaScript中call()、apply()和bind()方法的详细用法与区别

JavaScript中call()、apply()和bind()方法的详细用法与区别

2301_80270696的博客 1740

YOLOv5改进系列(4)——添加ECA注意力机制

手把手教你在YOLOv5中加入ECA注意力机制,文内含两种方法,小白也能看懂!

路人贾的博客 8547

js中call()、apply()、bind() 的用法

js中call()、apply()、bind() 的用法

weixin_44572568的博客 594

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JS中call()、apply()、bind()的区别及用法

1.区别 1.1三者的相同点:都是用来改变this的指向 1.2 call()和apply()的区别: 相同点:都是调用一个对象的一个方法,用另一个对象替换当前对象(功能相同) 例如: B.call(A, args1,args2);即A对象调用B对象的方法 F.apply(G, arguments);即G对象应用F对象的方法 不同点:参数书写方式不...

奋斗小强的博客 2万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

JavaScript 中 call()、apply()、bind() 的用法理解

JavaScript 中 call()、apply()、bind() 的用法 引用文章

weixin_46995731的博客 196

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaScript中call()、apply()、bind()的用法

JavaScript中call()、apply()、bind()的用法 三个比较和用法介绍 call()、apply()、bind()三者目的都是用来改变this的指向,但用法有一些不同 call() 语法:call(thisObj,arg1,arg2,...,argN) 参数:thisObj:this要指向的对象,arg1,arg2,...,argN:参数列表,参数可以是任意类型,当thisObj为null、undefined的时候,默认指向window 注意:会立即执行函数 apply() 语法:

你是我修复不了的bug,但我会用一生去维护 475

javaScript中的call(),bind(),apply()的用法

javaScript中的call(),bind(),apply()的用法 其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例1 obj.objAge; //17 obj.myFun() //小张年龄undefined 例2 shows() //盲僧  比较一下这两者this 的差别,第一个打印里面的this 指向obj,第二个全局声明的shows()函数 this 是window ; 1,call()、apply()、bind() 都是用来重定义 this 这

等待のL先森的博客 152

JavaScript 中 call()、apply()、bind() 的用法

其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面:   例1 obj.objAge; //17 obj.myFun() //小张年龄undefined   例2    shows() //盲僧  比较一下这两者this 的差别,第一个打印里面的this 指向obj,第二个全局声明的shows()函数 this 是window ; 1,call()、apply()、bind() 都是用来重定义 this 这个对象的!   如: ...

qq_39501726的博客 233
上一篇: 轻量级JavaScript(JS) HSLA颜色选择器
下一篇: JS简单实现自定义右键菜单
Uncle_long
博客等级 码龄10年 17粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值