gpt4 book ai didi

javascript - 对于 JavaScript 中的闭包,在一个函数中声明另一个函数有什么意义?

转载 作者:搜寻专家 更新时间:2023-11-01 05:13:23 25 4
gpt4 key购买 nike

我仍在努力思考 JavaScript 中的闭包(郑重声明,我已经在 Stack Overflow 上阅读了 JavaScript 闭包的答案,以及“JavaScript 闭包傻瓜”,但仍然对它们感到困惑) .

我的主要问题是我无法理解在一个函数中声明另一个函数的重要性;我知道返回内部函数允许外部函数的局部变量保持事件状态,但在这个例子中不是仍然如此吗?

function sayName(name) {
var say = "Hello, " + name;
alert(say);
}

var sayJohn = sayName("John");

在我创建的 sayJohn() 函数中,局部变量“say”仍在其局部范围之外被引用。那么这不是仍然在创建一个闭包吗?

N.B 我很抱歉这一切听起来很乱,对于学习 JavaScript 和一般编程来说仍然很新鲜,所以请放轻松!

最佳答案

您的示例确实无法显示闭包的威力。看看这个:

function makeAdder(add1){
return function(add2){
return add1 + add2;
};
}

// add10 is a function which increments the input by 10(that's the closure's magic)
var add10 = makeAdder(10);

add10(12); // returns 22
add10(9); // returns 19

关于javascript - 对于 JavaScript 中的闭包,在一个函数中声明另一个函数有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188916/

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