为了账号安全,请及时绑定邮箱和手机立即绑定

js闭包问题

js闭包问题

FFIVE 2018-10-10 17:28:01
var fn = null;function foo() {    var a = 2;    function innnerFoo() {          console.log(c);        console.log(a);     }     fn = innnerFoo;  }function bar() {    var c = 100;     fn(); } foo(); bar();小白搞不懂了,求大神告知这里输出什么,为什么?
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

foo执行的时候,innnerFoo会复制foo的作用域链,形成闭包,所以fn执行的时候,也就是innnerFoo执行会沿着作用域链向上寻找a,可以找到为2,但是找不到ccbar函数中的作用域链中,innnerFoo没有在此作用域链中声明c,所以会报错


查看完整回答
反对 回复 2018-11-17
  • 1 回答
  • 0 关注
  • 452 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信