函数的参数和Arguments对象
在javascript中,出现在函数定义文法中的参数列表是函数的形式参数,简称形参,一个函数可以有一个或者多个形参,函数对象定义时的形参数量可以通过length属性获得,例如
function add(x,y){return x+y;}window.cross=function(v1,v2){return v1*2+v2*1;}document.write('max_lenght='+max.length+'<br>');//max_lenght=2document.write('wds_cross_length='+window.cross.length);//wds_cross_length=2 function add(x,y){if(!y){y=0;}return x+y;}document.write('add_value='+add(2)+'<br>');//add_value=2document.write('add_value='+add(2,4)+'<br>');//add_value=6function Point(){if(arguments.length==0){this.x=0;this.y=0;}else if(arguments.length==1){var p=arguments[0];if(p instanceof Point){this.x=p.x;this.y=p.y;}else if(typeof(p)=="number" || p instanceof Number){this.x=Number(p);this.y=0;}else{throw new TypeError("参数类型错误");//如果这个参数既不是Point又不是Number,抛出类型错误异常。}}else if(arguments.length==2){var x=arguments[0];var y=arguments[1];if((typeof(x)=="number"||x instanceof Number)&&typeof(y)=="number"||y instanceof Number){this.x=x;this.y=y;}else{throw new TypeError("参数类型错误");}}else{throw new TypeError("参数类型错误");}}try{var x =new Point(2,3);document.write("x="+x.x+"<br>");document.write("y="+x.y+"<br>");document.write("****************"+"<br>");x =new Point(new Point(4,6));document.write("x="+x.x+"<br>");document.write("y="+x.y+"<br>");document.write("****************"+"<br>");x =new Point(10);document.write("x="+x.x+"<br>");document.write("y="+x.y+"<br>");document.write("****************"+"<br>");x =new Point("a",true);document.write("x="+x.x+"<br>");document.write("y="+x.y+"<br>");}catch(e){document.write("参数类型错误");}执行结果:x=2y=3****************x=4y=6****************x=10y=0****************参数类型错误