老生常谈的问题,什么是闭包?
我觉得阮一峰老师说的特别好:闭包简单来说,就是在函数内部访问函数局部变量的内部函数。
举个例子
fn1() {
let a = 0;
fn2 () {
console.log(a);
}
return fn2;
}
let fn2 = fn1();
fn2();
例子中,我们就可以将fn2函数,视为闭包。它将fn1的局部变量,变成了可以在fn1函数外部访问。
个人理解呢,闭包就是:使用内部函数的机制 让 函数本身定义的局部变量 变成了 外部可以访问的变量。
闭包作用:1.函数定义的局部变量,无法在内存中消失。
2.使用这些局部变量。
网友评论