闭包指的是一个函数能够访问并操作其外部函数中的变量,即使该外部函数已经执行完毕。一般来说,一个函数执行完毕后,其中的变量会被销毁,而闭包可以使得在函数执行完毕后依然能够对该变量进行操作。举一个例子,以下是一个使用闭包的函数:
function makeAdder(x) { return function(y) { return x + y; }; }
使用该函数可以创建一个新的函数,该函数可以在执行时使用makeAdder中传入的变量x:
var add5 = makeAdder(5); var add10 = makeAdder(10);
console.log(add5(2)); // 7 console.log(add10(2)); // 12
在上述例子中,makeAdder返回一个函数,该函数可以访问makeAdder中的变量x,即使makeAdder已经执行完毕。因此,在执行add5(2)和add10(2)时,它们会将传入的参数y与之前传入的x相加,并返回结果。