面试题答案
一键面试- 输出结果:
- 输出
2
。
- 输出
- 原因解释:
- 在
outer
函数中,定义了变量a
并赋值为1
,然后定义了内部函数inner
,inner
函数会打印变量a
的值。 - 接着,将
a
的值修改为2
。 - 当执行
const func = outer();
时,outer
函数执行,返回inner
函数。此时,inner
函数形成了闭包,它可以访问outer
函数作用域中的变量a
。 - 当执行
func();
时,实际上是执行inner
函数,由于闭包的特性,它访问到的a
是outer
函数作用域中最后修改的值2
,所以打印出2
。
- 在