位置: 编程技术 - 正文

理解javascript闭包(js闭包的定义和用途)

编辑:rootadmin

推荐整理分享理解javascript闭包(js闭包的定义和用途),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript闭包概念,js怎么理解,js闭包是什么,有什么好处,javascript闭包运行原理,js闭包是什么,有什么好处,js怎么理解,js怎么理解,javascript闭包运行原理,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是javascript闭包?javascript允许使用内部函数,内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。简单的javascript闭包例子:

在这段代码中,result实际上就是闭包f2函数。它一共运行了两次,第一次的值是,第二次的值是。这证明了,函数f1中的局部变量n一直保存在内存中,并没有在f1调用后被自动清除。为什么会这样呢?原因就在于f1是f2的父函数,而f2被赋给了一个全局变量,这导致f2始终在内存中,而f2的存在依赖于f1,因此f1也始终在内存中,不会在调用结束后,被垃圾回收机制(garbage collection)回收。这段代码中另一个值得注意的地方,就是"nAdd=function(){n+=1}"这一行,首先在nAdd前面没有使用var关键字,因此nAdd是一个全局变量,而不是局部变量。其次,nAdd的值是一个匿名函数(anonymous function),而这个匿名函数本身也是一个闭包,所以nAdd相当于是一个setter,可以在函数外部对函数内部的局部变量进行操作。 闭包的应用:

理解javascript闭包(js闭包的定义和用途)

这个单件通过闭包来实现。通过闭包完成了私有的成员和方法的封装。匿名主函数返回一个对象。对象包含了两个方法,方法1可以方法私有变量,方法2访问内部私有函数。需要注意的地方是匿名主函数结束的地方的'()',如果没有这个'()'就不能产生单件。因为匿名函数只能返回了唯一的对象,而且不能被其他地方调用。这个就是利用闭包产生单件的方法。

闭包的优势:(1)不增加额外的全局变量,(2)执行过程中所有变量都是在匿名函数内部。闭包的缺点:(1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。(2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。

本文就为大家介绍这里,如果大家对javascript闭包还是不够了解,请阅读相关文章进行补充学习,谢谢大家的阅读。

js简单网速测试方法完整实例 本文实例讲述了js简单网速测试方法。分享给大家供大家参考,具体如下:运行效果截图如下:具体代码如下:!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.Transitional//EN

JavaScript获取当前cpu使用率的方法 本文实例讲述了JavaScript获取当前cpu使用率的方法。分享给大家供大家参考,具体如下:想获取当前系统cpu的使用率,如果允许使用hta,可以使用以下的

JavaScript为事件句柄绑定监听函数实例详解 本文实例讲述了JavaScript为事件句柄绑定监听函数的方法。分享给大家供大家参考,具体如下:在JavaScript中为Dom元素绑定事件监听函数是一件非常常见的

标签: js闭包的定义和用途

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

上一篇:js实现根据身份证号自动生成出生日期(javascript身份证号验证)

下一篇:js简单网速测试方法完整实例(js简单网速测试方法)

  • 城建税减半征收政策文件
  • 以公司名义买50万的车可以省多少钱
  • 生产型企业直接进口产品是否可直接出口
  • 为什么对子公司长投要用成本法
  • 公司租用私人汽车违法吗
  • 可变现净值与公允价值孰低
  • 企业为职工购买的商业保险属于职工薪酬吗
  • 企业发生劳动仲裁还可以进行融资吗
  • 销售费用包括哪些二级科目
  • 一般纳税人税种认定有几个增值税要怎么申报呀
  • 公司预支了然后来报销的帐怎么做?
  • 利息收入汇算清缴
  • 住宅租给公司需要注意什么
  • 太阳能真空管和普通管的区别
  • 收取客户税点怎么记账
  • 1697506686
  • 工资薪金支出的扣除标准
  • 代理报关费0税率
  • 私立医院交所得税吗
  • ixapplet.exe - ixapplet是什么进程 有何作用
  • PHP:session_is_registered()的用法_Session函数
  • 一次摊销法优缺点
  • PHP:pg_escape_literal()的用法_PostgreSQL函数
  • 出售短期债券投资发生的净损失计入哪里
  • neoCopy.exe - neoCopy是什么进程 有什么用
  • 彻底清理缓存
  • 捐赠支出算期间费用吗
  • PHP:imagecopymergegray()的用法_GD库图像处理函数
  • 小企业会计准则调整以前年度费用分录
  • servlet工作原理和生命周期
  • php实现搜索的方式
  • 蓝色向日葵
  • 微信小店的入口在哪里
  • 写字楼出售需要交多少税
  • 进项税已认证未缴纳
  • php分页思路
  • php如何post
  • 企业进项税怎么查询
  • python进行统计分析
  • 工会经费是应付职工薪酬的借方还是贷方
  • 商业汇票的行为有哪些
  • 如何查看发票是否作废
  • 专票没有抵扣联可以作废吗
  • 土地增值税的扣除项目金额有哪些
  • 金蝶软件修改凭证
  • 计提应交增值税怎么做账务处理
  • 小额零星业务税收政策
  • 发票金额少于付款金额怎么做账
  • 本年利润的会计分录怎么做
  • 销售退回怎么办
  • 处置固定资产净收益属于利得吗
  • 未认证未抵扣的进项税
  • 经营性租赁账务处理方法
  • 库存商品发出计价测试
  • 离岸服务外包收入
  • 个人发票抬头写真名吗
  • 销项负数发票如何勾选
  • 支付宝如何支付医保费用
  • 应付账款暂估会计分录怎么写
  • 什么是活动目录和域
  • win7与xp文件共享
  • win10预览版和正式版
  • linux用ssh登录不进去
  • jquery prototype
  • cocos2dx android游戏防破解总结
  • CSS List Grid Layout 图片垂直居中
  • css主要解决什么问题
  • 拥有一个属于自己的空间高中作文
  • js实现弹窗
  • android的消息机制
  • jqueryui
  • javascript怎么学好
  • js中的类和对象
  • android中的常用布局有哪几种?
  • 黄南同仁县海拔多少米
  • 即征即退什么时候确认收入
  • 北京社保个人账户10万元退休金多少
  • 企业对税务局建议
  • 企业房产如何过户给个人
  • 年度关联业务往来报告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设