迭代函数,保存在自身属性中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> <script> function factorial(n){ //判断n是否为正整数,n==Math.round(n)不错 if (isFinite(n) && n>0 && n==Math.round(n)) { //之前看错了,这是round看成了random if (!(n in factorial)) { //创建数组,保存阶乘结果 factorial[n] = n*factorial(n-1); // return factorial[n]; 这一句写错位置了 } return factorial[n]; } //如果输入项不是正整数了,返回NaN. else { return NaN; } } //这一句一定要有,否则就返回了NaN factorial[1] = 1; //初始化缓存,以保证这种初始情况。 factorial(10); </script> </body> </html>
我在想:
如果没有初始化,该怎么写不返回NaN;
等我能力提高点,再来看这个问题