HTAs小白 HTAs小白
关注数: 0 粉丝数: 9 发帖数: 524 关注贴吧数: 1
JavaScript 方法的重载 2.2.4 function的arguments参数对象   JavaScript不支持方法的重载,原因是在JavaScript中同名的function只能有一个,并且function函数的参数个数可以使任意的。   虽然无法直接支持“重载”,但是可以通过arguments对象来伪装重载,让一个function根据参数的不同实现不同的功能。   arguments是在function中的特殊对象,通过arguments对象可以访问到function调用者传递的所有参数信息,比如获取到传入的参数个数:     function testMethod()     {       alert(arguments.length);     }     testMethod(); //输出 "0"     testMethod("abc"); //输出 "1" 可以通过arguments的索引arguments[index]获取到每一个传入的参数值:     function myMethod()     {       alert(arguments instanceof Array);       if (arguments.length == 0)       {         alert("no arguments");       }       else if (arguments.length == 1)       {         alert("Hello:" + arguments[0].toString())       }     }     myMethod();     myMethod("ziqiu.zhang");   显然,上面的方法通过判断参数的个数实现了伪装重载。但是这种实现并不好,因为所有的重载逻辑都集中在一个方法中,并且有令人厌烦的多个if-else分支。 但是使用arguments可以开发出功能强大灵活的函数。在开发jQuery的插件时就要经常使用arguments对象实现函数的伪重载。
1 下一页