function doWork() {
return function calculate(y) {
return y + 1;
}
}
var func = doWork();
var x = func(5);
document.write(x);
如果var x = func(5),var func = dowork(?);
你如何计算“?”
并且在第2行中未定义
答案 0 :(得分:0)
让我们一次解决这个问题。
function doWork() {
}
此函数存储并返回一个名为calculate的嵌套函数。
function doWork() {
return function calculate(y) {
return y + 1;
}
}
Calculate在这个特殊情况下接受一个参数,它被解析为一个整数,只需加1并返回它。在这种情况下,如果我console.log(calculate(4))
我将收到数字5,因为我正在解析我的值,并将其引用为' Y'在函数中,添加1并简单地返回它。
然后我们将函数doWork()
存储在变量func
中。
然后将变量func
存储到变量x
中,但注意我们在调用var x = func(5)
时如何解析数字5,因为我们已将其解析为函数{{1}我们可以在doWork()
函数中访问它,它是嵌套的&&被退回。
我们可以调用calculate
,它将简单地返回嵌套函数,整数加1。