位置: 编程技术 - 正文

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

  • 小规模纳税人增值税起征点
  • 研发机构采购设计方案
  • 汇算清缴时纳税调整表调增金额是怎么算出来的
  • 核定征收企业所得税应税所得率
  • 工程施工是资产还是负债
  • 8000块电脑大概能跑多少分
  • 电子税务局怎么登录
  • 发票确认平台勾选步骤
  • 房地产企业售楼降价法律条文
  • 房产未竣工如何缴纳房产税
  • 税收抵免与税收的区别
  • 计提贷款损失准备金遵循以下原则
  • 固定报销额度算工资吗
  • 盘亏材料10000元,可以回收的保险赔偿
  • 冲减利润怎么做账
  • 小规模企业发票跨月可以作废吗?
  • 已经交税的收入退款会计分录
  • 融资协议如何缴纳印花税
  • 打印机需要计提折旧吗
  • 个人境外收入如何开发票
  • 托儿所幼儿园卫生保健工作规范2022
  • 公司基本账户冻结怎么办
  • 装修工程款如何记账
  • js app框架
  • 如何利用流产让男人愧疚
  • 五险会计分录会计处理
  • 社保买房公积金
  • win11无法安装程序包
  • 折扣负数的专用发票怎么开
  • 苹果官网
  • 有形动产融资租赁增值税即征即退政策
  • 什么是资产负债率,如何计算
  • 私募股权基金备案流程
  • 最小的电视棒是多少寸
  • 运输费计税吗
  • web前端面试基础知识
  • laravel enum
  • python面向过程与面向对象的区别
  • 以前年度损益调整账务处理分录
  • 农产品收购发票可以抵扣进项税额吗
  • 补缴教育费附加免征滞纳金
  • 委托加工业务的组成计税价格
  • 年末关账注意事项
  • 长期股权投资的交易费用计入哪里
  • 一般纳税人的账务处理分录
  • 房地产项目完工清算报告
  • 异价调拨什么意思
  • 个人所得税如果不补税会怎么样
  • 公司向个人借款利息可以税前扣除吗
  • 合同取得成本如何收回
  • mysql案例分析
  • sql server多行添加
  • microsoft window vista
  • freebsd使用
  • 国产操作系统有免费的吗
  • 注册表c盘桌面路径改为d盘
  • ubuntu下mysql的常用命令
  • linux安装编译工具
  • win10开机提示xwz
  • win10企业版教育版专业版哪个好
  • dos批处理高级教程合编.pdf
  • opengl绘制ui
  • cocos2dx 2.2.2
  • EGL简介
  • javascript正则匹配两个点
  • 转义字符对应英文
  • jquery理解
  • android中启动service的方法有
  • JavaScript中setUTCMilliseconds()方法的使用详解
  • LeakCanary小记
  • jquery weui
  • javascript运行环境有哪些
  • python常用的内置逻辑判断函数
  • 在python中的用法
  • 增值税普通发票可以抵扣吗
  • 天津租房网个人房源出租
  • 收到银行手续费发票怎么做分录
  • 呼和浩特市契税2021年新规
  • 高速公路通行费的税率
  • 拆迁户契税减免政策有时间限制
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设