位置: 编程技术 - 正文

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框选)

  • 核定税种可以在哪里申报
  • 增值税纳税人是委托方还是受托方
  • 货物或应税劳务服务名称怎么填
  • 购进货物未取得增值税专用发票可以抵扣进项税额吗
  • .申报表税源编码怎么填
  • 股东购买固定资产能算实收资本么
  • 有期末留抵税额增值税和附税还用计提和缴纳吗
  • 债权转增资本应缴纳什么税
  • 跨区经营如何预缴税款
  • 股权变更前账务怎么处理
  • 小规模纳税人开票税率
  • 购物中心联营扣点
  • 承包方收取分包方费用
  • 分派现金股利会计科目
  • 企业分立房产税税收政策
  • 国税是负税需要缴税吗
  • 施工企业营改增税费有哪些
  • 公司厂房在建但已收到房租是否要交房产税呢?
  • 增值税发票开票有误怎么办?
  • 国税局公告2020年1号
  • 协方差cov计算公式展开
  • 对方转出没收到怎么办
  • 要求做前两年的核酸检测
  • 外贸过程中的银行是什么
  • 废旧物资回收企业税收管理
  • 材料未到,货款尚未支付
  • win10系统出现蓝屏恢复
  • 收到对方投资款怎么做会计凭证
  • 单位支付安装天然气费
  • 季度成本分析报告
  • 转出未交增值税借方余额表示什么
  • php字符串操作函数
  • 累计盈余科目怎么填
  • fbembed.dll
  • 买房增值税征收标准
  • PHP:imagefilledellipse()的用法_GD库图像处理函数
  • 外商投资企业 外资企业
  • 蓝牙11
  • 人工智能怎么做出来的
  • 代理费与代理运费的区别
  • 销售精装修房如何做账
  • 房屋出租 交税
  • 安全生产责任险是强制险吗
  • 帝国cms常见的英文
  • 怎么开电子专用增值税发票
  • mysql5.5命令
  • 航天金税服务费怎么交
  • 上月结转余额怎么做会计分录
  • mysql客户端程序的功能是什么
  • 应交税金科目的核算
  • 纳税申报资料报表怎么填
  • 餐饮营业收入怎么算
  • 营改增后,建筑行业与供应商签合同才怎样签没风险?
  • 售后维修费会计分录
  • 通行费发票电子化 机场路
  • 期末留抵税额可以退税吗
  • 明细分类账如何填写
  • 设置行政机构的主要依据是
  • sqlserver排序规则怎么看
  • windows 10测试版
  • xp系统安装版如何安装
  • FreeBSD中使用QUOTA(磁盘配额)来限制用户空间
  • centos6.5修改用户名
  • windows防火墙无法更改某些设置错误代码0×80070422
  • linux ftp 服务
  • 电脑因故障出现问题而启动
  • js如何使用
  • 第一章初见第二章决定
  • javascript教程完整版
  • 编写js代码要注意什么
  • SharedPreferences中的MODE_APPEND 和 MODE_PRIVATE 区别
  • python登陆代码
  • JavaScript For Beginners(转载)
  • 面向对象的基础知识
  • jQuery ajax应用总结
  • 怎么在手机开数据那里看用了多少流量
  • 残疾人可以免增值税吗
  • 税务部门意识形态
  • 买车开增值票是什么意思
  • 手机上交了社保可以退吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设