位置: 编程技术 - 正文

详解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)

  • 政府补助利得要交企业所得税吗怎么算
  • 车船使用税新规2020
  • 税务知识:价外费用包括哪些费用?
  • 契税完税凭证是不是契税发票
  • 电商账务处理及收入成本如何确定?
  • 货物或应税劳务服务名称怎么填
  • 如何判断固定资产资本化还是费用化
  • 会议费发票能抵扣吗
  • 零星小额交易要交税吗
  • 累计纳税工资是什么意思
  • 在途物资的会计凭证怎么做
  • 股权转让需要缴纳企业所得税吗
  • 现金比率的计算公式是指
  • 存货换入无形资产考虑增值税
  • 单位员工去外地上班
  • 结转增值税的计算公式
  • 无形资产属于什么行业
  • 调整暂估有差价怎么办
  • 价外收入是什么意思
  • 什么叫抵免
  • 验资报告需要什么材料
  • 雇主责任险发票可以用复印件吗
  • 佣金的规定方法有哪些
  • 查看电脑开机时间记录win10
  • win7系统为什么没有无线网络连接
  • win切换平板模式
  • 住房公积金余额有利息吗
  • window10电源选项
  • 暂估成本会计分录
  • php的mysql_query
  • php preg_quote
  • 大学网页制作作业dw
  • php的框架有哪些
  • php中的pdo
  • echarts y轴设置
  • css中文字垂直排列
  • html用javascript
  • 固定资产折旧四种方法公式
  • 租赁的房屋再转租出去交几次印花税呢
  • php array_fill
  • 智能手机登陆信息怎么删除
  • mysql需要转义的特殊字符
  • mongodb reference
  • 织梦程序
  • 原值净值怎么算
  • 实收资本核算有哪些要求
  • 以前年度是什么意思
  • 高速过路费发票图片
  • 公司向法人借款会计分录
  • 什么是盈余公积和资本公积
  • 外贸退税是算利润吗
  • 企业发生亏损,可在( )年内连续弥补
  • 物流运输车类型
  • 企业如何设置预缴税款
  • 权益性投资包括哪些
  • 利润所属科目
  • sql server使用心得
  • sqlserver连接到服务器
  • 注册表的使用
  • Windows Server 2003服务器群集创建和配置指南
  • windows server 2008下一些设置技巧及优化经验总结
  • linux系统之间的区别
  • centos 任务计划
  • 拒绝远程操作
  • win7如何设置多用户
  • linux安装后没有网卡只有lo
  • 简单总结译码器和数据选择器的作用
  • css border-bottom
  • linux如何配置jdk
  • 批处理中for语句的哪个参数表示目录
  • unity3d快捷键
  • shell定时删除指定目录下的文件夹
  • Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
  • java script入门
  • python去除文件中的空格
  • javascriptwhile
  • 使用jQuery Rotare实现微信大转盘抽奖功能
  • 汽车购置税发票有什么用
  • 三免三减半是什么
  • 下载国税网上办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设