JavaScript 闭包
什么是闭包?
简单理解:闭包=内层函数+外层函数的变量。正如前面所说的作用域链也会涉及到闭包,如下:
let a = 6;//全局作用域
function f() {
a = 7;//父级作用域
function d(){
a = 8;//自己的作用域
console.log(a);
}
d();
}
f();
闭包的官方概念:一个函数对周围状态的引用捆绑到一起,内层函数中访问到其外层函数的作用域。
闭包的作用:封闭数据,提供操作,外部也可以访问函数内部的变量。
闭包的写法:
// 闭包:外部可以使用函数内部的变量
function outer(){
let a = 10;
function fn() {
console.log(a);
}
return fn
}
const fun = outer()
fun()
上述代码,outer是一个闭包,其本身直接将子函数fn的值返回过来,此时并没与调用,知识单纯的返回值。
我们直接在全局作用域中就可以调用子函数fn
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2020-09-27 MySQL备份