当我有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
谢谢!
答案 0 :(得分:1)
行:1调用level1
fn并返回存储在别名level2
中的fn temp
。
行:2调用temp
fn并返回存储在别名level3
中的fn temp2
。
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
答案 1 :(得分:0)
只需替换
Return level3()
使用
Return level3