js中递归调用本身可以这样:
function a1(n){ a1(n)}
但是如果需要在参数n进行自增的情况下判断会出错:
function a1(n){ if(n>10) return 'aaa'; n++; a1(n)}
此时执行 a1(1)时得到的结果只能是 ‘undefined’
经过一番研究发现想到得到正确的结果 ‘aaa’
则需要这样
function a1(n){ if(n>10) return 'aaa'; n++; return a1(n)}
因为如果不在执行下一次a1时将其作为结果返回,则第一轮执行a1时其实已经结束了,作为后续执行的a1应该就会仅执行而没有返回结果给任何函数或变量或方法,仅仅是执行了而已,而不会对第一次执行有任何影响。