2016-10-07 183 views
0

可为什么这个代码工作有人向我解释:递归函数

let recursive =() => 
{ 
    recursive(); 
} 

,这一次引发错误:

const recursive =() => 
{ 
    recursive(); 
} 

错误:

Build:Variable 'recursive' is used before being assigned.

我认为在变量不会改变的情况下应该使用const,在这种情况下这是真的。
有人知道,如果这是预期的行为?

回答

1

每次调用递归函数时,运行时都会首先在堆栈中添加一个新的但名称相同的变量