use*_*307 -1 javascript closures
我在网上做了一个小测试,有这个代码:
function getFunc() {
var a = 7;
return function(b) {
alert(a+b);
}
}
var f = getFunc();
f(5);
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我不能getFunct(5)直接打电话。
最后两行没看懂
为什么我需要将函数分配给变量。执行 f(5) 时会发生什么?
JS 如何解释 5 是内部函数而不是外部函数的变量?
您可以在调用第一个函数后立即调用内部函数,因为第一个调用返回一个函数,第二个调用给出结果。
function getFunc() {
var a = 7;
return function(b) {
console.log(a + b);
}
}
getFunc()(5);Run Code Online (Sandbox Code Playgroud)