gpt4 book ai didi

javascript - 此函数如何将参数传递给另一个内部函数参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:36 24 4
gpt4 key购买 nike

当我查看 MDN 以了解有关闭包的一些要点时,我遇到了以下功能。

它可能是 javascript 中的已知模式,但对于 java 或 .NET 开发人员来说却很奇怪。我想知道它是如何工作的,我知道 javascript 语言中的参数和一流的对象行为,但是 add5(2) 如何将 2 分配给 y 变量。

function makeAdder(x) {
return function(y) {
return x + y;
};
}

var add5 = makeAdder(5);
var add10 = makeAdder(10);

console.log(add5(2)); // 7
console.log(add10(2)); // 12

最佳答案

首先,只要有命名参数——就有一个隐式变量声明。所以忘记上面的功能,只考虑这个

var example = function() {
var x = 5;
return function(y) {
return x + y;
}
}
var inner = example();
console.log(inner(5));
> '10'

你明白上面的工作原理吗?如果不是,我建议您研究一下 javascript 闭包及其含义。

Javascript Closures

在上面的函数 makeAdder 中,唯一的区别是我们传递的是 x 的值。但是 x 仍然在外部函数中定义,并且生成的返回函数关闭了它的值

关于javascript - 此函数如何将参数传递给另一个内部函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33027326/

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