以下是我的代码段:
function executorFunc(input){
return input();
}
function mainFunc(){
var a = 100;
function innerFunc(){
var b = 20;
return a + b;
}
executorFunc(innerFunc);
}
var finalVal = mainFunc();
console.log(finalVal);
我假设innerFunc
在mainFunc
内创建,并且会知道外部/封闭函数数据,如a = 100
。令我惊讶的是,事实并非如此。有些东西做错了,或者有些东西我在JS的基础知识中误解了。
最终输出为undefined
,我期待120
。
答案 0 :(得分:5)
预期结果,因为您没有从mainFunc
函数()返回值。
使用
return executorFunc(innerFunc);
function executorFunc(input){
return input();
}
function mainFunc(){
var a = 100;
function innerFunc(){
var b = 20;
return a + b;
}
return executorFunc(innerFunc);
}
var finalVal = mainFunc();
console.log(finalVal);
答案 1 :(得分:0)
这里的问题是 public class WillNotInitiliase
{
public WillNotInitiliase()
{
BreakType();
}
static WillNotInitiliase()
{
BreakType();
}
public static void DoStuff()
{
}
private static void BreakType() => throw new TypeLoadException( "I can never be loaded" );
}
没有返回任何值。所以mainFunc
仍未定义。