闭包的触发条件是在函数内引用一个外部变量,并返回一个新值。在JavaScript中,可以通过在函数内部创建新的函数来实现闭包。闭包的运用场景包括:1. 封装变量,实现私有变量;2. 实现高阶函数,如柯里化和偏函数应用;3. 异步编程,如事件监听和回调函数。例如,以下代码展示了使用闭包实现私有变量的例子:
function Counter() { let count = 0; return function() { count++; console.log(count); } }
let counter1 = Counter(); counter1(); // 输出 1 counter1(); // 输出 2
在这个例子中,Counter函数返回了一个闭包,该闭包引用了外部变量count并返回了一个新函数。每次调用counter1函数,都会对count变量进行自增并输出新值,同时保持count变量的私有性,不会被外部访问到。