gpt4 book ai didi

javascript - 闭包和 JavaScript 语法

转载 作者:行者123 更新时间:2023-11-28 19:33:03 24 4
gpt4 key购买 nike

我在控制台中运行此命令来查找结果的值,但我对为什么它是 122 感到困惑。我无法弄清楚为什么,也无法弄清楚在代码中如何使用奖金。有人可以解释一下奖金的值(value)以及他们如何获得开头声明的每个变量的值吗?我认为这将帮助我和世界其他人了解此学习脚本中的内容:

var hidden = mystery(3);
var jumble = mystery3(hidden);
var result = jumble(2);

function mystery ( input ){
var secret = 4;

input+=2;

function mystery2 ( multiplier ) {
multiplier *= input;

return secret * multiplier;
}

return mystery2;
}

function mystery3 ( param ){
function mystery4 ( bonus ){
return param(6) + bonus;
}

return mystery4;
}

提前非常感谢您! (我已经审查了许多资源,但无法完全弄清楚这个相当基本的资源)。 :(

最佳答案

注销或者更好的是,手动写出返回值并一次查看一个语句可以帮助您简化问题。

var hidden = mystery(3);

mystery(3) 返回函数:

function mystery2 ( multiplier ) {
multiplier *= input; //notice input is 5
return secret * multiplier; // and secret is 4
}

请注意,在这种情况下,inputsecret 将始终保持不变。但情况并非总是如此。通常使用闭包的原因是将变量封装在私有(private)环境中,并且闭包函数为非本地函数提供了一种“到达”私有(private)范围的方法。函数完成执行后,这些变量不会被垃圾回收,因为返回的函数仍然可以访问它们。即使函数已经结束,这些函数仍然可以更改函数内部变量的值。

<小时/>
var jumble = mystery3(hidden);

mystery3(hidden) 返回函数:

function mystery4 ( bonus ){
return param(6) + bonus; //param(6), which points to mystery2 above,
// is just 6*5*4 = 120
}
<小时/>
var result = jumble(2);

嗯,jumble(2),即上面的mystery4,只是120 + 2,因此是122。

关于javascript - 闭包和 JavaScript 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394736/

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