Skip to content

闭包

闭包

JavaScript 允许在外部函数内编写函数。我们可以编写任意数量的内部函数。如果内部函数访问外部函数的变量,那么它被称为闭包。

js
function outerFunction() {
    let count = 0;
    function innerFunction() {
        count++
        return count
    }

    return innerFunction
}
const innerFunc = outerFunction()

console.log(innerFunc())
console.log(innerFunc())
console.log(innerFunc())
sh
1
2
3

让我们看更多内部函数的例子

js
function outerFunction() {
    let count = 0;
    function plusOne() {
        count++
        return count
    }
    function minusOne() {
        count--
        return count
    }

    return {
        plusOne:plusOne(),
        minusOne:minusOne()
    }
}
const innerFuncs = outerFunction()

console.log(innerFuncs.plusOne)
console.log(innerFuncs.minusOne)
sh
1
0

🌕 你正在取得进步。保持你的势头,继续好的工作。现在为你的大脑和肌肉做一些练习。

练习

练习:第1级

  1. 创建一个具有一个内部函数的闭包

练习:第2级

  1. 创建一个具有三个内部函数的闭包

练习:第3级

  1. 创建一个 personAccount 外部函数。它有 firstname、lastname、incomes、expenses 内部变量。它有 totalIncome、totalExpense、accountInfo、addIncome、addExpense 和 accountBalance 内部函数。Incomes 是一组收入及其描述,expenses 也是一组支出及其描述。

🎉 恭喜!🎉