关于javascript中闭包的理解
2024-08-29 16:34:24
闭包就是能够读取其他函数内部变量的函数。
在javascript中,只有函数内部的子函数可以读取局部变量,因此,我理解闭包就是定义在一个函数内部的函数。
例子:
var f1 = function() {
var n = 100;
var f2 = function() {
return n;
}
return f2();
}
var s = f1(); console.error(n + 1);
由于n是定义在f1内部的局部变量,因此外部的n是未定义的,会出错
var f1 = function() {
var n = 100;
var f2 = function() {
return n;
}
return f2();
}
var s = f1(); console.notice(s + 1);
通过闭包函数f2,局部变量n就可以在外部取到。
其实熟悉了以后,闭包就是匿名函数,然后被它的外部函数作为返回值传出来,就可以在外部取到局部变量了
闭包的作用除了前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
闭包不能乱用,因为其变量一直保持在内存中,因此内存消耗会比较大。
最新文章
- java的基础知识运算符
- IDEA 搭建自己的第一个 SpringMvc Hello Word
- inside the C++ Object model总结
- 【NoSql】Redis
- c# Json Dictionary序列化和反序列化
- oracle sqlplus及常用sql语句
- MVC linq To SQL更新数据库操作
- 【Oracle】安装
- mysql union ,UNION RESULT
- SpringMVC简单配置
- QuietHit小Game
- JOISC2019 游记
- ps入门学习
- flask狗书
- 【ISC安全训练营】挑战价格极限第三天!!![北京]
- 【IIS错误】未能加载文件或程序集“AAAAA”或它的某一个依赖项。试图加载格式不正确的程序。
- 分享插件的使用加一个echart走数据
- JAVA笔试准备
- 自定义控件之万能Repeater源码
- CAT偶现NPE的问题