当前位置: 首页> 教育> 大学 > 教务管理系统数据库设计_上海人才引进网站_个人博客登录首页_企业培训考试系统app

教务管理系统数据库设计_上海人才引进网站_个人博客登录首页_企业培训考试系统app

时间:2025/7/27 6:23:31来源:https://blog.csdn.net/weixin_62831076/article/details/144122245 浏览次数:0次
教务管理系统数据库设计_上海人才引进网站_个人博客登录首页_企业培训考试系统app

定义:闭包就是里层函数+外层函数变量,它们一起构成了闭包

作用:因为函数内部的变量只能自己访问,我们使用闭包就是为了在外部访问函数内部的变量

//里层函数用到了外层函数的变量function outer() {const a = 1function f() {console.log(a)}f()}outer()

应用场景:统计函数的调用次数(实现数据私有)

count作为全局变量容易被修改→将它改成闭包形式→使count,私有→外部无法直接修改

造成问题:内存泄露。

原因:fun是全局变量(未关闭不回收),而fun的内容是outer函数的返回值fn函数,而fn引用了外部函数count的变量count,从而造成了count,一直在内存中,不会被释放。

//闭包的应用:统计函数调用的次数
//1.普通形式 :
// let count = 1//因为count是全局变量,很容易被修改,会影响内部count值
// function fn() {
//   count++//函数调用一次,打印一次→但如果在外层修改count=1000,则下次打印结果为1001
//   console.log(`函数被调用${count}次`)
// }// 2.闭包形式
function outer() {let count = 1function fn() {count++console.log(`函数被调用${count}次`)//外部改变count,打印不受影响;1,2...}return fn
}
//outer()   ===  fn   ===  function fn() {}
//const fun = function fn() {}
const fun = outer()//outer()
// fun === fn()
fun()
fun()
// const fn = function() { }  函数表达式

关键字:教务管理系统数据库设计_上海人才引进网站_个人博客登录首页_企业培训考试系统app

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: