gpt4 book ai didi

javascript - 为什么js中的递归函数不继承主函数的变量值?

转载 作者:行者123 更新时间:2023-12-02 21:17:24 25 4
gpt4 key购买 nike

let adder = () => {
if (sum === undefined) {
var sum = 0
}
sum = sum + 10
console.log(sum)
if (sum >= 100) {
return sum
}
adder()
}

请解释为什么每次激活递归函数时sum = 0?为什么不积累?

最佳答案

如何利用闭包属性?

const adder = (sum = 0) =>
() => ++sum

const a = adder()
const b = adder()

console.log(a(), a(), a()) // 1 2 3
console.log(b(), b(), b()) // 1 2 3
console.log(a(), a(), a()) // 4 5 6
console.log(b(), b(), b()) // 4 5 6

或者给加法器一个参数 -

const adder = (sum = 0) =>
(n = 1) => sum += n

const a = adder()
const b = adder()

console.log(a(10), a(10), a(10)) // 10 20 30
console.log(b(), b(), b()) // 1 2 3
console.log(a(), a(), a()) // 31 32 33
console.log(b(), b(), b()) // 4 5 6

关于javascript - 为什么js中的递归函数不继承主函数的变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60932548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com