【发布时间】:2022-01-22 03:55:27
【问题描述】:
参数 10 绕过外部函数传递给匿名内部函数。这里的原理是什么?
function aFunc() {
let firstNum = 2;
return (secondNum) => secondNum * firstNum;
}
let aVar = aFunc();
console.log(aVar(10));
【问题讨论】:
标签: javascript scope closures
参数 10 绕过外部函数传递给匿名内部函数。这里的原理是什么?
function aFunc() {
let firstNum = 2;
return (secondNum) => secondNum * firstNum;
}
let aVar = aFunc();
console.log(aVar(10));
【问题讨论】:
标签: javascript scope closures
因为aVar 是(secondNum) => secondNum * firstNum,其中firstNum 和闭包有firstNum = 2。
function aFunc() {
let firstNum = 2;
return (secondNum) => secondNum * firstNum;
}
let aVar = aFunc();
调用aFunc() 运行在firstNum 周围创建闭包并返回箭头函数(secondNum) => secondNum * firstNum 的函数。
后续对aVar(10)的调用调用此箭头函数,计算并返回firstNum(2)和secondNum(10)相加的结果。
console.log(aVar(10));
【讨论】: