1 //01.使用argument模拟方法重载 2 function sayHi() { 3 if (arguments.length == 1) { 4 alert(arguments[0]); 5 } 6 if(arguments.length==2){ 7 alert(arguments[0]+arguments[1]); 8 } 9 }
1 function getFac(num) { 2 if (num <= 1) 3 return num; 4 return num * getFac(num - 1); 5 } 6 7 var result = getFac(5);//5*4*3*2*1 8 alert(result);
1 var test = getFac;//把阶乘地址赋给test 2 getFac = function (num) { 3 return num; 4 } 5 var res = test(5); 6 alert(res);
1 function getFac(num) { 2 if (num <= 1) 3 return num; 4 return num * arguments.callee(num-1);//这个argument是一个指针,直接指向getFace方法原来的地址,而不是后面的getFace改写以后的方法 5 }