先上代码functiona(){vartemp=10;functionb(){console.log(temp);//10}b();}a();functiona(){vartemp=10;b();}functionb(){console.log(temp);//报错}a();模模糊糊有个作用域的概念,但是无法清楚明白的说出来,请大佬指点~*打印出a函数的原因是将变量和函数取为同名了,现在已修改
1 回答
湖上湖
TA贡献2003条经验 获得超2个赞
第一段代码相信没啥问题,函数b执行是能取到其父函数a作用域下的变量a。第二段由于函数a和函数b是同级函数,变量a是在函数a的作用域下,且没有全局作用域下的变量a的声明,所以报错。
添加回答
举报
0/150
提交
取消