f1()
这样写没有去执行f1函数 f1()()
为什么要再执行一次才会去执行?大家能解释一下吗?
function f1(){
var a=1;
var t=function(){
a++;
}
return function(){
console.log(a);
}
}
f1()
f1()
这样写没有去执行f1函数 f1()()
为什么要再执行一次才会去执行?大家能解释一下吗?
function f1(){
var a=1;
var t=function(){
a++;
}
return function(){
console.log(a);
}
}
f1()
你这个涉及到了闭包。函数里返回另一个函数,所以,当你调用f1()
的时候,就进入到了f1
这个函数体里面去执行了代码,并不是函数f1
没执行,其实是执行了的,但是猜你想要的效果是能够在控制台看到a
的值的输出,最开始说到函数f1
返回值也是一个函数,所以要想看到输出a
的值,你需要f1()()
.
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读