位置: 编程技术 - 正文

详解JavaScript函数绑定(javascript函数用法)

编辑:rootadmin

上面的例子创建了一个handler对象,handler.handlerFun()方法被分配为DOM按钮的click事件处理程序。设计意图是这样的:当点击按钮的时候触发该方法,弹出对话框显示handler定义的message,然而点击后对话框内容却是undefined。熟悉闭包的同学可以轻松看出来这个问题在于没有保存handler.handlerFun()方法的执行环境,this对象最后指向了DOM按钮而非handler。可以使用闭包解决此问题,修改函数绑定语句这样就可以得到预期的结果,这个解决方案在onclick程序内部使用一个闭包直接调用handler.handlerFun()方法,当然这是特定于此场景的解决方案,创建多个闭包可能会令代码难以理解和调试。

自定义bind函数通过自定义的bind函数可以将函数绑定到指定环境,bind()函数接收两个参数:一个绑定函数,一个执行环境,并返回一个在执行环境中调用绑定函数的函数。看起来很简单,但是其功能很强大,在bing()中创建了一个闭包,闭包使用apply()调用传入的函数,并给apply()传入执行环境和参数,这里的arguments是内部匿名函数的,而非bind()的。当调用返回的函数时,它会在给定的函数中执行被传入的函数,并给出所有参数。上面例子的调用handler.handlerFun依旧可以得到参数event,因为所有参数在都通过绑定的函数传递给它了。

小结

一旦要将某个函数以函数指针的形式传递,同时该函数必须在特定的环境中执行,自定义的bind()函数就可以使用,他们主要用于事件处理程序及setTimeout和setInterval,然而这种绑定方式和普通函数相比需要更多的内存开销,所以尽量只在必要的时候使用。

推荐整理分享详解JavaScript函数绑定(javascript函数用法),希望有所帮助,仅作参考,欢迎阅读内容。

详解JavaScript函数绑定(javascript函数用法)

文章相关热门搜索词:javascript函数大全,javascript中的函数该如何理解,javascript函数大全,javascript函数,javascript函数的定义,javascript函数用法,javascript中的函数该如何理解,javascript函数用法,内容如对您有帮助,希望把文章链接给更多的朋友!

javaScript面向对象继承方法经典实现 JavaScript的出现已经将近多年了,但是对这个预言的褒贬还是众说纷纭。很多人都说JavaScript不能算是面向对象的变成语言。但是JavaScript的类型非常松

JavaScript 中的日期和时间及表示标准介绍 前言本篇的介绍涵盖以下部分:1.时间标准指的是什么?UCT和GMT的概念、关联和区别?2.时间表示标准有哪些?3.JS中时间的处理日期时间标准日期的标

JavaScript中的eval()函数详解 eval(1+2),-3动态判断源代码中的字符串是一种很强大的语言特性,几乎没有必要在实际中应用。如果你使用了eval(),你应当仔细考虑是否真的需要使用它

标签: javascript函数用法

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

上一篇:JS中for循序中延迟加载动态效果的具体实现(js中写for循环)

下一篇:javaScript面向对象继承方法经典实现(javascript面向对象编程 PDF)

  • 哪些资产损失应向税务机关申报扣除?
  • 汇算清缴补交所得税怎么做凭证
  • 认缴制投资方的账务处理
  • 银行开户登记号在哪看
  • 应付职工薪酬如何具体到个人
  • 员工向公司借的备用金到年底未还清
  • 加油站固定资产折旧年限
  • 年终奖有计算公式吗
  • 年终奖不走工资走存单,需要缴税吗?
  • 负债表应交税费为负数
  • 高速公路通行费怎么计算的
  • 税收分类编码如何填写
  • 异地工程要预缴环境税款吗
  • 报废固定资产增值税税率
  • 税会差异例子
  • 财会【2016】22号文
  • 普票3点怎么算
  • 往期从价房产税未申报怎么处理
  • 企业所得税是什么意思需要交不需要
  • 出售股票公允价值变动损益
  • 银行存款明细账怎么登记及范本
  • 给子公司拨款怎么记账
  • 国外的发票怎么在中国报销
  • 发票认证只认证进项吗
  • 企业奠基费用如何入账
  • 企业会计制度政府补助
  • windows7中
  • CENTOS7安装报错
  • realjbox.exe - realjbox是什么进程 作用是什么
  • paypal授权书怎么填
  • php教程100
  • 常见造成账目差异的原因
  • 办公楼改造方案
  • 总分机构 分总机构
  • vuecli非根目录打包
  • php输出对象
  • php互换两个变量的关系
  • vue 如何使用
  • linux shell
  • php获取目录列表
  • 售后租回怎么理解
  • 所得税汇算清缴前取得跨年发票
  • 交易所转交易所手续费是多少
  • 富文本功能
  • 生产车间发生的固定资产租赁费用属于直接费用
  • 中小企业发展专项资金亮点 免申即享
  • 备用金用发票核销去哪核销
  • 固定资产清理往报表哪列示
  • 公司给员工付个税怎么交
  • 环评费用如何进项抵扣
  • 什么叫固定资产台账
  • 收到实务返利的发票
  • 公司采购一直没有发票
  • 未认证的发票如何进项税转出
  • 物流运输车类型
  • 其他业务收入如何填写增值税申报表
  • 水利基金征收标准
  • 公司帐户到银行怎么取钱
  • 开票信息指的是买方还是卖方
  • 哪些税费计入税金及附加科目
  • mysql 大数据处理
  • ubuntu 20.04 服务器
  • win7系统如何创建管理员账户
  • hpg是什么软件打开
  • linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
  • grep的结果 再次查找
  • win8系统怎么还原出厂设置
  • linux的截图工具
  • android内存dump
  • 修改安卓app权限教程
  • 批处理自动登录有密码的程序
  • 为什么使用json传输数据
  • linux shell命令大全
  • jquery操作样式
  • python移动目标跟踪
  • 置顶聊天的人怎么不见了
  • 百旺税控盘电话服务热线
  • 发票机怎么测试打印
  • 企业代扣代缴个税
  • 河南省税务零申报怎么操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设