=======================================================function add(num){
return num+10;
}document.write(add());在add没有输入参数的时候,输出的结果为 NaN。但是:=================================================function callSomeFunction(someFunction,someArguments){
return someFunction(someArgument);
}function add(num){
return num+10;
}var res = callSomeFunction(add,30);
document.write(res); //结果输出为40
这里add的参数num没有赋值,但是结果是40.=======================================================
问题:
这个函数callSomeFunction(add,30)是如何计算得出这个结果的?
return num+10;
}document.write(add());在add没有输入参数的时候,输出的结果为 NaN。但是:=================================================function callSomeFunction(someFunction,someArguments){
return someFunction(someArgument);
}function add(num){
return num+10;
}var res = callSomeFunction(add,30);
document.write(res); //结果输出为40
这里add的参数num没有赋值,但是结果是40.=======================================================
问题:
这个函数callSomeFunction(add,30)是如何计算得出这个结果的?
return add(num);
}function add(num){
return num+10;
}
这么写估计明白了吧
你这儿传了30 进去的单步调试一下,看它怎么执行的
然后callSomeFunction只是把add()的参数30赋给add(),然后返回add()计算的结果?不过理解起来还是有点别扭。另外再请教一个递归函数的问题,这个问题我昨晚弄了好久,还没想明白:
function factorial(x){
if(x<=1) return 1;
return x*factorial(x-1);
}factorial(5); //输出为120
factorial(4)=4*factorial(3)
factorial(3)=3*factorial(2)
factorial(2)=2*factorial(1)
factorial(1)=1