function counter() {
let count = 0;
return function() {
return ++count;
}
}
const increment = counter();
console.log(increment()); // 1
console.log(increment()); // 2
console.log(increment()); // 3
// counter 函数返回了一个函数,
// 这个返回的函数形成了一个闭包。
// 在这个闭包中,有一个变量 count,这个变量只能被返回的函数访问,而外部函数无法访问。
// 闭包的作用在于可以将变量隐藏在函数内部,
// 从而避免变量污染全局作用域。
// 同时,闭包还可以保存函数执行时的状态,
// 让这些状态得以保留并在以后的调用中重用。
// 在实际开发中,闭包常常用于实现私有成员和单例模式等。