普通函数名和匿名函数赋值变量名相同
// An highlighted block
var sum = function(a,b){
console.log("进入匿名函数");
return a + b;
};
function sum(num){
console.log("进入普通函数");
if(num === 1){
return 1;
}
return num + sum(num - 1);
};
console.log(sum(10)); //控制台输出NaN.
在学习函数时,一个文件中定义了太多函数,再写递归函数时发现结果和想象中不同,在将其移入到新建js中好用。
查找问题后发现唯一可能是匿名函数赋值的变量名相同引起的。
经测试发现调用写在匿名函数下边走的永远是匿名函数的那个。