位置: 编程技术 - 正文

浅谈JavaScript中的apply/call/bind和this的使用(javascript总结)

编辑:rootadmin

推荐整理分享浅谈JavaScript中的apply/call/bind和this的使用(javascript总结),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:简单阐述javascript的主要作用,简述javascript,javascript总结,细说javascript,javascript概述及作用,javascript总结,细说javascript,javascript的,内容如对您有帮助,希望把文章链接给更多的朋友!

fun.apply(context,[argsArray])

立即调用fun,同时将fun函数原来的this指向传入的新context对象,实现同一个方法在不同对象上重复使用。

context:传入的对象,替代fun函数原来的this;

argsArray:一个数组或者类数组对象,其中的数组参数会被展开作为单独的实参传给 fun 函数,需要注意参数的顺序。

fun.call(context,[arg1],[arg2],[…])

同apply,只是参数列表不同,call的参数需要分开一个一个传入。如果不知道参数个数,则使用apply。

使用:

Math.max() //只接收单独的参数,通过下面的方法可以在数组上面使用max方法:Math.max.apply(null, array); //会将array数组参数展开成单独的参数再传入Array.prototype.push.apply(arr1,arr2); //将一个数组拆开push到另一个数组中;不用apply则会将后续数组参数当成一个元素push进去。Array.prototype.slice.call(arguments); //在类素组对象上使用slice方法

fun.bind(context,[arg1],[arg2],[…])

使fun方法执行的context永不变。

浅谈JavaScript中的apply/call/bind和this的使用(javascript总结)

arg1:要传递到新函数的参数列表

返回一个函数供后续调用,其函数体和原函数fun一样,但新函数的this指向新传入的context对象。新函数会具有bind方法指定的初始参数arg1/arg2...,后续调用新函数时的实参要往已有参数的后面排。

事件处理函数中使用bind:

使用bind()方法改写slice()方法:

bind()兼容Ie5~ie8处理

一般情况下setTimeout()的this指向window或global对象。当使用类的方法时需要this指向类实例,就可以使用bind()将this绑定到调用对象,而不用传入self方式传入this。

this

this对象是在函数运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当函数被当作某个对象的方法调用时,this等于那个对象。

判断方法:this和定义在哪儿无关,函数运行时,如果有. 运算符,this指.前的对象;如果没有,this指window。若new关键字调用时,指代新对象。有apply/call/bind时,指代第一个参数。

在一个HTML DOM事件处理程序里面,this始终指向这个处理程序被所绑定到的DOM节点。

微信小程序开发之入门实例教程篇 前言近日,在工作闲暇之余,阅读了一些关于微信小程序的文章,忍不住,想动手试他一试。本文就以我的第一个微信小程序为例,简单的介绍下,微

javascript 秒表计时器实现代码 javascript秒表计时器实例代码:htmllang="en"headmetacharset="UTF-8"titlejs计时器/title/headbodyinputtype="text"value=":"inputtype="button"value="开始"inputtype="button"value="结束"

ECMAScript6 新特性范例大全 ECMAScript6(ECMAScript,ES5,ES)技术已经在前端圈子很流行了,他给前端开发人员带来了很多惊喜,提供的语法糖使复杂的操作变得简单。本文没有

标签: javascript总结

本文链接地址:https://www.jiuchutong.com/biancheng/376055.html 转载请保留说明!

上一篇:深入理解Javascript中的观察者模式(深入理解ffmpeg pdf)

下一篇:微信小程序开发之入门实例教程篇(微信小程序开发用什么语言)

  • 月初没报完税可以开票吗
  • 多缴纳了印花税有什么影响
  • 同级财政拨款的管理要求有哪些
  • 暂估入库收到发票后怎么做分录
  • 小规模纳税人申请电子发票流程
  • 小规模纳税人增值税优惠政策2023
  • 季初资产总额是1,季末是0怎么填
  • 进销存明细账怎么填写
  • 教育用地转让缴哪些税
  • 红冲上月的其他应收款凭证怎么做?
  • 境外支付佣金如何开发票
  • 季报所得税可以预交吗
  • 代理记账公司收费标准
  • 开票多一分钱怎么办
  • 被强制升为一般纳税人的条件
  • 商品超出几倍合法
  • 超市购销和联营有什么区别
  • win10开机无限werfault一直刷新
  • 票据贴现公司需要资质吗
  • PRISMSTA.EXE - PRISMSTA是什么进程 有什么用
  • u盘的重装系统
  • 其他流动负债有利息吗
  • 债权人和债务人是什么意思
  • iis6配置php网站
  • 业务招待费会计分录
  • 最奢华的女士腕表
  • uniapp打开系统设置
  • 所得税年度报表资产总额
  • aes-ecb和aes-gcm
  • 可供出售金融资产和交易性金融资产
  • 好用的5款国产手机推荐
  • 考到二本
  • 2022年 change detection遥感图像变化检测 论文附代码
  • 编译原理第三版
  • php常用的打印函数
  • taskset命令详解
  • js创建对象的三种方式
  • 管理费用包括哪些部门的工资
  • 企业所得税退税如何进行账务处理
  • 债权投资利息收入调增还是调减
  • 付款后发票的扩张怎么开
  • 发票认证注意事项及细节
  • 个人所得税工资薪金包括哪些内容
  • 事业单位无形资产包括
  • 合作社收到政府补贴会计分录
  • 外商投资的企业有哪些
  • 电费发票未到怎么入账
  • 产品成本核算的方法
  • 小规模纳税人转一般纳税人的条件
  • 非公司人员差旅怎么报销
  • 固定资产损失税前扣除备查资料有哪些
  • 房屋租赁协议印花税怎么计算
  • 保安公司购买的保险
  • 内部转账单怎么填制
  • 固定资产清理产生的收入计入
  • 建筑图纸设计费多少钱
  • 母公司以房产投资子公司
  • 软件租赁费入什么账户
  • 办公用品怎么开大额发票
  • 商业企业库存商品
  • 2008sql附加数据库
  • Windows Server 2008脱机文件配置攻略
  • 使用u盘安装win10
  • watchdog. sys
  • linux 删除文件夹里的所有文件
  • wcesmgr.exe - wcesmgr 是什么进程
  • uca1
  • linux系统漏洞总结
  • linux打成zip包
  • sedsvc.exe是什么
  • assetstore怎么下载资源包
  • python解读
  • [android那些事] linux 下android源码编译(国内被墙方案)
  • Linux命令行和shell脚本编程大全
  • unity灯光闪烁效果
  • 基于python的研究
  • jquery去重复数组
  • javascript 对象
  • 新疆碧桂园三期最新消息
  • 诚信励志语录经典短句
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设