js回调方法 js递归时使用方法

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应该就会仅执行而没有返回结果给任何函数或变量或方法,仅仅是执行了而已,而不会对第一次执行有任何影响。js回调方法 js递归时使用方法

猜你喜欢

转载自blog.csdn.net/lyc00net/article/details/78674950