位置: 编程技术 - 正文

js闭包的用途详解(js闭包作用问题解决应用)

编辑:rootadmin

推荐整理分享js闭包的用途详解(js闭包作用问题解决应用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js闭包详解,js闭包的原理,js闭包的使用场景,js闭包原理使用场景,js闭包作用问题解决应用,js闭包的应用,js闭包的应用,js闭包原理使用场景,内容如对您有帮助,希望把文章链接给更多的朋友!

我们来看看闭包的用途。事实上,通过使用闭包,我们可以做很多事情。比如模拟面向对象的代码风格;更优雅,更简洁的表达出代码;在某些方面提升代码的执行效率。

1 匿名自执行函数

我们知道所有的变量,如果不加上var关键字,则默认的会添加到全局对象的属性上去,这样的临时变量加入全局对象有很多坏处,比如:别的函数可能误用这些变量;造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链上遍历的)。除了每次使用变量都是用var关键字外,我们在实际情况下经常遇到这样一种情况,即有的函数只需要执行一次,其内部变量无需维护,比如UI的初始化,那么我们可以使用闭包:

我们创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。

2缓存

再来看一个例子,设想我们有一个处理过程很耗时的函数对象,每次调用都会花费很长时间,那么我们就需要将计算出来的值存储起来,当调用这个函数的时候,首先在缓存中查找,如果找不到,则进行计算,然后更新缓存并返回值,如果找到了,直接返回查找到的值即可。闭包正是可以做到这一点,因为它不会释放外部的引用,从而函数内部的值可以得以保留。

js闭包的用途详解(js闭包作用问题解决应用)

这样,当我们第二次调用CachedSearchBox.attachSerachBox(“input1”)的时候,我们就可以从缓存中取道该对象,而不用再去创建一个新的searchbox对象。

3 实现封装

可以先来看一个关于封装的例子,在person之外的地方无法访问其内部的变量,而通过提供闭包的形式来访问:

得到结果如下: undefined default abruzzi 4 闭包的另一个重要用途是实现面向对象中的对象,传统的对象语言都提供类的模板机制,这样不同的对象(类的实例)拥有独立的成员及状态,互不干涉。虽然JavaScript中没有类这样的机制,但是通过使用闭包,我们可以模拟出这样的机制。还是以上边的例子来讲:

运行结果如下: default john default jack 由此代码可知,john和jack都可以称为是Person这个类的实例,因为这两个实例对name这个成员的访问是独立的,互不影响的。

以上便是js闭包的作用了,非常简单易懂吧,希望对小伙伴们有所帮助

浅谈JavaScript 框架分类 如果是从内部架构与理念划分,目前JavaScript框架可以划分为5类。第1种出现的是以命名空间为导向的类库或框架,如创建一个数组用newArray(),生成一个

javascript 回调函数详解 回调函数定义回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向

推荐JavaScript实现继承的最佳方式 实现JavaScript继承的最简单的方式是call方法(或者apply方法)及原型链方法,但这两种方法都有缺陷,而其混合体就是很好的继承实现方式。下面举例说

标签: js闭包作用问题解决应用

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

上一篇:js闭包实例汇总(js闭包的使用)

下一篇:浅谈JavaScript 框架分类(js框选)

  • 企业所得税季度申报表怎么填
  • 5月份企业所得税
  • 海关关税计算公式
  • 零税率是指
  • 以前年度计提的工资没发放怎么处理
  • 专票小数点没打印齐能用吗
  • 每个月结转损益都有什么科目
  • 一次性支付一年房租怎么做账每月如何结转
  • 树苗应计入什么科目里面
  • 机械租赁小规模企业所得税
  • 汇算清缴上年度金额怎么填
  • 金银首饰在哪个平台买比较好
  • 土地转让交哪些税种
  • 过节发什么物资给员工好些
  • 客户以旧料抵货款账务如何处理?
  • 计提地税走哪个科目
  • 个税申报表怎么打印
  • 出租无形资产收到的租金
  • 借支报销流程
  • 广告服务类企业有哪些
  • 退了货的发票还能用吗
  • 劳务工程款和工人工资的区别
  • 公司注销时帐面清算
  • 国际货运运费的计算基础
  • 机器用油怎么做成的
  • win8电脑系统还原
  • schost.exe - schost是什么进程 有什么用
  • php字符串定义
  • cda是什么文件格式
  • 年应税销售额包含哪些
  • 低值易耗品报废账务处理
  • 布鲁克顿的一只狗叫什么
  • 当年实现的利润弥补以前年度亏损还是提盈余公积
  • python stream模块
  • gpt gtp
  • python创建自定义函数
  • critical_section 结构
  • 可行性研究报告合同属于什么合同
  • 小企业会计制度和企业会计制度的区别
  • 奖金属于职工福利薪酬吗
  • 存款对银行经营的意义
  • sql2008附加数据库错误3456
  • 清算机构收单机构和发卡行
  • 履约保证金打到个人账户合法吗
  • 暂估成本账务处理办法
  • 公司注销后违法行为追究吗
  • 发货快递费多少钱
  • 支付厂房租金计入什么会计科目
  • 收到劳务费发票如何申报个税
  • 食品企业产品
  • 未认证的进项税额转出会计分录
  • 行政事业单位支出范围和标准
  • 新产品的研发费用扣除例题
  • 软件测试收费标准2019
  • 用户登陆login什么意思
  • wp7.8升级wp8
  • linux安装atop
  • centos state down
  • xp取消开机启动项
  • win7硬盘访问权限怎么解除
  • 浅谈一下新冠的好处
  • Python中文分词的第三方库
  • 下载器广告
  • javascript高级程序设计pdf百度云
  • linux多线程编程实例
  • 提高你工作效率的方法
  • jquery 右键菜单
  • linux 打包
  • python基础教程视频教程
  • js异步实现原理
  • python模块怎么用
  • android客户端与服务器通信
  • 国家税务局陕西电子税务局app
  • 银行赠送礼品活动方案
  • 土地占用税是什么意思
  • 进口小麦关税税率是多少
  • 电子税务网没开通怎么办
  • 医保电子凭证怎么激活
  • 青岛个人所得税咨询电话是多少
  • 税务打虚打骗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设