JS - 闭包(Closure)
warning:
这篇文章距离上次修改已过203天,其中的内容可能已经有所变动。
闭包(Closure)是一个函数以及它所引用的外部环境中的引用环境的组合。当一个函数在另一个函数的内部定义时,它就产生了一个闭包。这个内部函数可以访问外部函数的局部变量,即使外部函数已经执行完毕。
下面是一个使用闭包的例子:
function outerFunction() {
let outerVariable = 'I am outside!';
return function innerFunction() {
console.log(outerVariable);
};
}
const myClosure = outerFunction();
myClosure(); // 输出: 'I am outside!'
在这个例子中,innerFunction
是一个闭包。它可以访问定义它的外部函数 outerFunction
中的变量 outerVariable
。即使 outerFunction
已经返回,innerFunction
依然可以访问 outerVariable
。这是因为 innerFunction
持有对 outerVariable
的引用,而后者由于闭包的原因不会被垃圾收集机制回收。
评论已关闭