js中函数的表示法以及模拟函数的重载
/****************************函数的多种表示法*******************************/
//"number"表示参数,"alert(number+20);"表示函数体。
var add = new Function("number","alert(number+20);");
add(10);
alert(add.length);//获得函数期望的参数的个数
var add1 = function(num){ alert(num); }
add1(20);
function add2(num,num2){ alert(num+10); }
add2(20);
alert(add2.length);
/********************利用arguments来模拟函数的重载**************************/
function imitation(){
if(arguments.length == 1)
{ alert(arguments[0]); }
if(arguments.length == 2)
{ alert(arguments[0]+arguments[1]); }
if(arguments.length == 3)
{ alert(arguments[0] + arguments[1] + arguments[2]); }
}
imitation(10);
imitation(10,10);
imitation(10,10,10);
此外,大家应该明白这几点:
1、在javascript中,函数就是对象;
2、在javascript中,没有方法重载的概念。
3、 在javascript中有一个Function对象,那么所有自定义的函数都是Function对象类型的。
Function对象接收的参数都是字符串类型的,其中最后一个参数就是要执行的函数体,
而前面的 所有参数是函数真正要接收的参数。
4、在javascript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。
5、利用arguments在javascript中来模拟函数的重载。
6、每一个函数都有一个length属性,表示该函数期望接收参数的个数。它与arguments刚好相反。