这两段代码有什么区别,闭包在这两段代码里是如何执行的。

新手上路,请多包涵
function f1(){
    var x = 1;
    function f2(){
        return x++;
    }
    return f2();
}
var f3 = f1();
console.log(f3);
console.log(f3);

//========================

function f1(){
    var x = 1;
    function f2(){
        return x++;
    }
    return f2;
}
var f3 = f1();
console.log(f3());
console.log(f3());
阅读 1.2k
1 个回答

上一段f3是一个固定的整数

下一段f3是个函数, 并且执行了两次,
f3是内部函数, 执行的上下文环境是个闭包, 其中有变量x, 这个x在外部访问不到, 只能由f3函数访问, f3每执行一次, x+1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题