位置: 编程技术 - 正文

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

  • 制造业做贸易出口可以退税吗
  • 新个税年终奖计算公式
  • 一般纳税人结转销售成本怎么算
  • 资产计提折旧的科目
  • 退回股东投资款现金流量
  • 报送会计报表
  • 去年的物业费今年缴,有罚款吗
  • 包工包料的税率2023
  • 开业前的其他费用
  • 公司购车预计净残值率怎么计算
  • 留抵税额抵税怎么做分录
  • 他人购买股权个人所得缴纳个人所得税率是多少?
  • 住宿发票抵扣怎么做账
  • 错把费用计入固定资产次月如何调账
  • 应交税金的明细科目
  • 公司出差打的报销吗
  • 专用发票右上角的数字表示什么
  • 资产负债表流动性从强到弱
  • 使窗口最小化的快捷键
  • 删除文件需要管理员权限无法添加怎么办
  • 修改远程桌面端
  • 建筑工程购买的家用清洁电器能勾选认证吗
  • 购置资产是什么财务活动
  • 盘亏固定资产累计折旧
  • 阿里云 ide
  • upf命令
  • 复式记账法会计名词解释
  • 合伙企业个人所得税怎么算
  • 免征和抵扣税额的区别
  • 有销项无进项怎么处理
  • 事业单位收入入账
  • mongodb skip limit
  • 电费已付,没有收到发票
  • 记账凭证去根据什么填制
  • 下列项目的进项税额可以从销售税额中抵扣的是
  • 拯救你的方法
  • 跨年度冲红字发票补正账务如何处理
  • 财政应返还额度年末有余额吗?
  • 建筑业营改增的主要内容
  • 当月购进原材料取得税控专用发票
  • 普票部分红冲发票需要收回原发票吗
  • 存货跌价准备确认损失分录
  • 企业汇算清缴必须要做审计吗
  • 会计继续教育的发票在哪里打
  • 汇算清缴后补缴得企业所得税,计入哪年的税负
  • 月末库存商品能抵税吗
  • 应交税费核算规定最新
  • 以前年度应交税费多计提怎么调平
  • 现金支付中的现金是什么
  • 公允价值变动损益借贷方向
  • 代扣代缴增值税税率
  • 事业单位差旅费报销标准
  • Mysql使用insert插入多条记录 批量新增数据
  • sqlserver模糊查询不用like
  • 如何使用u盘安装win11
  • win8.1运行Java程序网页出现空白等问题如何解决
  • Win10怎么设置高性能
  • Linux系统怎么调整屏幕亮度
  • win7系统怎么用
  • win7麦克风没声音怎么设置方法从计算机
  • win8系统进不了桌面怎么办
  • win7安装程序遇到错误0xc0000135
  • linux怎么禁用命令
  • 笔记本上的声卡
  • linux系统怎么共享
  • 硬盘xp系统
  • win8无法识别存档文件
  • 基于贪心算法
  • linux查看内存型号与数量
  • 详解各种汽油一吨等于多少升
  • javascript高级程序设计电子书
  • android开发app
  • javascript学习指南
  • JavaScript基础教程
  • 国税局发票查验平台查询不到
  • 税务局冲红发票
  • 山东税务社保费用缴纳
  • 租房完税证明需要房东交钱吗?
  • 国家税务局总局咨询平台
  • 河北地税局电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设