gpt4 book ai didi

javascript - JS 中的闭包问题

转载 作者:行者123 更新时间:2023-11-29 15:20:25 25 4
gpt4 key购买 nike

当我有 3 级作用域时,我无法理解闭包

https://jsfiddle.net/Ar2zee/wLy8rkyL/1/

我如何访问 level3 函数中的参数“g”,

var a = 10;

function level1(b) {
var c = 1;

function level2(f) {
var d = 2;

function level3(g) {
return a + b + c + d + f + g;
}
return level3()
}
return level2;
}
var temp = level1(10);
var temp2 = temp(10);
var temp3 = temp2(10);
console.log(temp3(10)); // or level(10)(); without variable

谢谢!

最佳答案

第 1 行调用 level1 fn 并取回存储在别名 temp 中的 fn level2
第 2 行调用 temp fn 并取回存储在别名 temp2 中的 fn level3
Line:3 现在调用 temp2 fn 时执行 fn level3 返回加法运算的结果。

所以 temp3 不是一个函数而是一个值。

var a = 10;

function level1(b) {
var c = 1;

function level2(f) {
var d = 2;

function level3(g) {
return a + b + c + d + f + g;
}
return level3;
}
return level2;
}
var temp = level1(10);
var temp2 = temp(10);
var temp3 = temp2(10);
console.log(temp3); // or level(10)(); without variable

关于javascript - JS 中的闭包问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44416983/

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