闭包的概念理解、目的、优缺点以及缺点的解决方案

您所在的位置:网站首页 淘宝优缺点和解决办法 闭包的概念理解、目的、优缺点以及缺点的解决方案

闭包的概念理解、目的、优缺点以及缺点的解决方案

2024-07-08 09:42:01| 来源: 网络整理| 查看: 265

闭包的概念理解、目的、优缺点以及缺点的解决方案 闭包的概念理解

闭包概念理解:函数嵌套函数,内层函数引用内层函数的变量。

闭包的目的

闭包的目的:要了解闭包的目的,首先要了解js的作用域和作用域链。作用域可以分为全局作用域和局部作用域。在全局作用域中声明的变量随处可以引用,但是在函数内部声明的局部变量,只能在函数内部使用,那么,如何实现在函数外部访问函数内部的变量呢?这就是闭包的目的所在。那么应该怎么实现呢?具体实现:外层函数定义子函数,子函数引用外部函数的局部变量,最后外部函数再返回子函数。在函数外部调用函数即可得到返回的子函数,也就实现了访问函数内部变量的效果。

闭包的优点 保存结果变量:当外部函数调用结束后,因为闭包并不会释放外部函数定义的局部变量,那么变量的值会得到保存;防止使用全局变量的污染 闭包的缺点及解决方案

由于调用完外层函数后 得到了外层函数所返回的子函数 而子函数中引用了外部函数的变量 导致变量所占用的内存无法回收 如果无法合理使用闭包 会导致内存消耗较大 内存泄漏。解决方案就是再不需要使用闭包后 删除局部变量 可以设置为null

以下是本人写的关于闭包的demo,希望可以帮到大家!

Document // =====================通过闭包实现累加===================================== function outer() { var count = 0 function inner() { console.log(++count) } return inner } // one two three是通过调用outer函数返回的三个相互独立的函数 // outer函数调用之后 count变量并没有被销毁 没有被内存回收 因为one函数仍然引用着count 那么再次调用one时 count的值会保留原来的值 var one = outer() one() // 1 one() // 2 one() // 3 one = null // 当不需要使用时 将one设置为null 释放内存 var two = outer() two() // 1 two() // 2 two() // 3 two = null // 当不需要使用时 将two设置为null 释放内存 var three = outer() three() // 1 three() // 2 three() // 3 three = null // 当不需要使用时 将three设置为null 释放内存 // ============通过全局变量实现累加================================================================ var num = 0 function doAdd() { console.log(++num) } doAdd() // 1 doAdd() // 2 doAdd() // 3


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭