闭包是 JavaScript 中的一个基本概念,看似棘手,但却非常强大。这是理解它们的快速指南。
当函数“记住”其词法作用域中的变量时,即使该作用域已经退出,也会创建闭包。
function outerFunction(outerVariable) { return function innerFunction(innerVariable) { console.log(`Outer: ${outerVariable}, Inner: ${innerVariable}`); }; } const myClosure = outerFunction("Hello"); myClosure("World"); // Output: Outer: Hello, Inner: World
这里,innerFunction 可以从outerFunction 的作用域访问outerVariable,即使在outerFunction 执行完毕之后也是如此。
function counter() { let count = 0; return function () { count++; return count; }; } const myCounter = counter(); console.log(myCounter()); // 1 console.log(myCounter()); // 2
function multiplyBy(multiplier) { return function (number) { return number * multiplier; }; } const double = multiplyBy(2); console.log(double(5)); // 10
闭包让函数记住它们的环境。它们非常适合 JavaScript 中的私有变量、部分应用程序和许多其他高级模式。
以上是JavaScript 中的闭包是什么? (内部指南)的详细内容。更多信息请关注PHP中文网其他相关文章!