我仍然在努力思考 JavaScript 中的闭包(作为记录,我已经在 Stack Overflow 上阅读了 JavaScript 闭包的答案,以及“傻瓜的 JavaScript 闭包”,但仍然对它们感到困惑)。
我的主要问题是我无法理解在函数中声明另一个函数的重要性;我知道返回内部函数允许外部函数的局部变量保持活动状态,但在这个例子中不是这样吗?
function sayName(name) {
var say = "Hello, " + name;
alert(say);
}
var sayJohn = sayName("John");
在我创建的 sayJohn() 函数中,局部变量“say”仍在其局部范围之外被引用。那么这不是还在创建一个闭包吗?
请注意,对于这一切听起来多么混乱,我深表歉意,对于学习 JavaScript 和一般编程来说仍然很新鲜,所以请放轻松!