function a(n){
if (isFinite(n)&& n>0&& n==Math.round(n)){
if(!(n in a))
a[n]=n*a(n-1)
return a[n]
}
else return NaN
}
有没有大触知道if(!(n in a))
这行代码,a里会有属性名是n
n是a(n)这里传入的值 a[n]=n*a(n-1)
//从这里给a赋予属性n,看着应该是数字, if(!(n in a))
判断这个的意思应该是没有a[n]数值或者数值为0,则重新计算递归
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。