因为fn1是定义在全局作用域,所以能在全局或者全局的子集调用。
递归函数有中断的时候啊,你这样写根本就没中断返回的时候,无限递归。
可以调用吧,但是你没有终止条件,所以溢出报错了
Java script 可以自己调用自己
function my()
{
console.log('d`);
}
setTimeout('my()',1000);
可以调用,但是递归是有终止条件的,你这里没有边界终止条件,会一直递归fn1(2,3),不会终止,如果想正常调用,就加上边界终止条件。
1、递归正是这种自调的形式,在本题中没有作用域的概念;
2、递归显得更加优雅,常用于递减,递增,树形结构查找,高阶函数计算等;
3、缺点也显而易见,递归如果阈值设定不当就会超出预期限制,一直执行下去,造成内存溢出
不知道这样回答,题主是否满意
自己调用自己,这是属于递归调用,但是你必须设置终止条件,否则会一直执行,直到溢出报错为止
在没有限制的情况下,递归运算会无终止地自身调用.
所以 在递归运算中要结合 条件语句(if)进行控制.
只有在某个条件成立时才允许执行递归,否则不允许调用自身。
没有终止条件
没有终止条件会溢出