<script>
function f1() {
var n = 999;
function f2() {
alert(n);
}
return f2;
}
var result =f1();
console.log(result);
console.log(f1())
f1();
result();
</script>
result() 其实是等于f1()()也就是等于f2(),而f1()就是f2, f2是函数的定义,如果需要让他执行需要f2()才可以; 这就是为啥他俩不一样了。
result=f1()执行后,result为f1的内部函数f2,result()执行f2函数所以alert
执行f1()只是将f2返回,并没有执行,所以不会alert
改下面就会执行alert了
f1()()
有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~