gpt4 book ai didi

javascript - 闭包——常识?

转载 作者:行者123 更新时间:2023-11-30 00:09:09 26 4
gpt4 key购买 nike

MDN 的 A re-introduction to JavaScript文章以闭包的讨论结束:

a function defined inside another function has access to the outer function's variables. The only difference here is that the outer function has returned, and hence common sense would seem to dictate that its local variables no longer exist.

这篇文章继续介绍作用域对象和作用域链等。听起来很复杂。然而,通过他们的示例脚本,我看不出常识为什么会失败?

function makeAdder(a) {
return function(b) {
return a + b;
};
}
var x = makeAdder(5);
var y = makeAdder(20);

x(6); // returns 11
y(7); // returns 27

因此,将 x = 设置为带有参数 5 的 makeAdder:

x = function(b) {return 5 + b;};

所以当我们现在用参数 6 调用 x 时,我们有

function(6) {return 5 + 6;};

返回 11。

我想我的问题是:我错过了什么吗?闭包看起来很简单。为什么人们会沉迷于这个概念?

最佳答案

I guess my question is: am I missing something? Closures seem simple. Why do people get hung up on the concept?

不,您没有遗漏任何东西。闭包很简单。您必须问问那些声称自己很复杂的人——甚至就此主题撰写书籍的人——他们为什么认为自己很复杂。

可能被认为是复杂的是采用一种利用这个简单概念的设计思维方式。

关于javascript - 闭包——常识?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215930/

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