位置: 编程技术 - 正文

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

  • 即征即退进项税额转出
  • 业务招待费的税金可以抵扣吗
  • 进项税额转出时点
  • 税负是什么意思举例子说明
  • 发票抬头开个人可以吗
  • 存货核算的内容是什么
  • 内部伙食费购买会计分录
  • 预付账款和应付账款的区别
  • 不动产销售额怎么填
  • 税务局三代手续费政策
  • 二季度资产总额怎么计算
  • 应交税费明细分类账
  • 冲销暂估材料怎么做账
  • 会计差错更正业务处理怎么操作?
  • 车船税没有发票吗?
  • 购买货物待销售会计分录
  • 已认证已抵扣的发票对方要寄回吗
  • 增值税专用发票几个点
  • 工会有纳税号吗
  • 高新技术企业怎么申报企业所得税
  • 固定资产应付账款在现金流量表中怎么体现
  • 设备销售和安装账务
  • 结转出租设备的会计分录
  • 给员工购买的意外保险可以税前扣除
  • 企业收到贷款贴息会计分录
  • 小规模季度不超过30万的账务处理
  • 对公账户代扣
  • 注销企业基本户需要先注销一般户吗
  • 财务清算的作用
  • apache去掉php后缀
  • Yii2使用表单上传文件的实例代码
  • 报表上如何把账号删除
  • 滴滴发票开公司名称可以抵扣进项吗
  • 合并的命令
  • 应交税费的主要成本
  • 信用证支付方式,银行处理单据时主要关注( )
  • 小规模纳税人应交税费科目设置
  • 年金现值系数公式记忆
  • 基于sqlite特殊字符转义的实现方法
  • 其他收入工会经费是什么意思
  • 年报中的资产总额怎么计算
  • 印花税的征税对象和计税依据
  • 跨区域缴纳个税相关规定
  • 支付临时工人的报酬属于工资薪金概算吗
  • 固定资产报废怎么开票
  • 非同一控制下企业合并取得的长期股权投资
  • 职工工资如何计算天数
  • 税控系统全额抵扣
  • 业务招待费管理草案探讨
  • 如何搭建一个企业
  • 怎么用公式计算结果填充单元格
  • mysql的心得体会
  • win7系统如何隐藏桌面
  • CentOS操作系统
  • bios关闭pxe
  • win10用浏览器
  • centos6.1安装
  • directx device
  • linux内核模块命令
  • win7系统不能安装到此磁盘
  • win8安装应用商店
  • win8开机界面
  • win8任务栏在底部不显示
  • python爬取教程
  • cocos2dx如何通过Image获取指定点颜色值
  • excle纵坐标
  • cocos2djs教程
  • linux查看端口占用情况并杀掉进程
  • cd跳转不到目录
  • php和python有什么区别
  • jquery 图片插件
  • 按钮点击后消失
  • android常见问题及解决方法
  • 什么是总分机构汇总纳税
  • 汽车发票包含增值税吗
  • 河南省医保卡中心电话
  • 广东税务实名注册
  • 360浏览器hi真不巧
  • 党建共建的目的意义
  • 迈凯伦gt1
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设