Bei*_*man 0 javascript jquery ecmascript-6
以下是我的代码段:
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);
Run Code Online (Sandbox Code Playgroud)
我假设innerFunc在内部创建mainFunc并且将会知道外部/封闭函数数据a = 100.令我惊讶的是,事实并非如此.有些东西做错了,或者有些东西我在JS的基础知识中误解了.
最终的输出是undefined我期待的120.
因为您没有从mainFuncfunction()返回值,所以预期的结果.
使用
return executorFunc(innerFunc);
Run Code Online (Sandbox Code Playgroud)
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);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |