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,这个变量只能被返回的函数访问,而外部函数无法访问。 // 闭包的作用在于可以将变量隐藏在函数内部, // 从而避免变量污染全局作用域。 // 同时,闭包还可以保存函数执行时的状态, // 让这些状态得以保留并在以后的调用中重用。 // 在实际开发中,闭包常常用于实现私有成员和单例模式等。