gpt4 book ai didi

javascript - 闭包中的嵌套函数在 Javascript 中未被正确调用

转载 作者:行者123 更新时间:2023-11-30 05:32:40 24 4
gpt4 key购买 nike

我是 Javascript 的新手,正在学习闭包和嵌套范围。

提示要求:编写一个具有三个嵌套函数的函数,每个函数以一个数字作为参数。最内层的函数应返回所有三个数字的总和。

这是我想出来的:

var outMost = function (num1) {
var x = num1;
var innerMost = function (num2) {
var y = num2;
var innerInnerMost = function (num3) {
console.log(x + y + num3);
}
return innerInnerMost;
}
return innerMost;
}

var firstNum = outMost(1);
firstNum(2);
firstNum((3));

请帮助我理解我做错了什么——我访问了很多网站来了解闭包和作用域,但似乎没有什么能很好地解释它。感谢您的帮助。

最佳答案

当您调用 firstNum(2) 时,您没有捕获返回值(它是一个函数)。如果我在 Node.js REPL 中运行你的代码,它看起来是这样的:

> var firstNum = outMost(1);
undefined
> firstNum(2);
[Function]
> firstNum((3));
[Function]

最后试试这个:

var firstNum = outMost(1);
var secondNum = firstNum(2);
secondNum(3);

这是它在 Node.js REPL 中的样子:

> var firstNum = outMost(1);
undefined
> var secondNum = firstNum(2);
undefined
> secondNum(3);
6
undefined

请注意,赋值的计算结果为 undefined。此外,由于 innerInnerMost 不返回任何东西,所以最后有一个隐式的return undefined

关于javascript - 闭包中的嵌套函数在 Javascript 中未被正确调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962754/

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