ibeautiful
抓住两个关键点很重要:js中函数是引用类型;函数一般执行方式:函数名+();下面的例子帮你理解引用类型vara=function(x,y){console.log(x+y);};varb=a;a(1,2);b(1,2);//b,a指向同一个函数对象//b重新赋值b=function(x,y){console.log(x-y);}a(1,2);b(1,2);如果还是不理解,参考下这篇文章:javascript中的引用类型接下来说明下函数的几种定义方式:函数声明alert(sum(1,2));functionsum(x,y){returnx+y;}函数表达式//这段代码会报错alert(sum(1,2));varsum=function(x,y){returnx+y;}在写递归的时候可以这样写//如果直接用sum(x-1)+sum(x-2),如果sum被改名,或者重新赋值,产生bugvarsum=functionfSum(x){if(x