闭包以及引用数据类型的拷贝


 function foo() {
   
  var i = 0;
   function fn() {
    console.log(i++); 
   }
   return fn;
}

var f1 = foo();
f2 = foo();
f1();
f1();
f2();
//为什么执行f2()的结果不是2而是0呢? f2\f1不是指向同一个对象的么
#前端#
全部评论
执行foo第二次的时候是新的环境上下文,内部的i不是同一个,肯定就不一样啊
点赞 回复
分享
发布于 2019-11-08 13:35
把 var i=0 挪到最外面就是你说的情况了
点赞 回复
分享
发布于 2019-11-08 19:31
阿里巴巴
校招火热招聘中
官网直投
大概这就是创建私有变量了吧
点赞 回复
分享
发布于 2022-05-26 14:46

相关推荐

1 1 评论
分享
牛客网
牛客企业服务