JavaScript 没有函数重载&Arguments对象
对于学过Java的人来说。函数重载并非一个陌生的概念,可是javaScript中有函数重载么...接下来我们就进行測试
<script type="text/javascript"> //JavaScript不存在函数重载现象 var add=function(a,b){ return a+b; } var add=function(a,b,c){ return a+b+c; }
<span style="white-space:pre"> </span>alert(1,2); alert(add(1,2,3)); </script>这个案例也仿照java中的语法,来模拟函数重载..我们执行一下结果
alert(1,2):
alert(1,2,3):
结果对照发现:第一个执行的结果是NaN,第二个执行的结果正常。
JavaScript中不存在函数重载的现象。当同一时候出现两个同样的函数名驶,第二个会覆盖第一个.因此alet(1,2)会找第二个函数,可是它是实參中的第三个參数为空,因此结果报了NaN.
那么我们怎么样模仿Java中的函数重载现象呢?这里就要介绍Arguments对象...
<script type="text/javascript"> //JavaScript不存在函数重载现象 var add=function(){ if(arguments.length==2){ return arguments[0]+arguments[1]; }else if(arguments.length==3){ return arguments[0]+arguments[1]+arguments[2]; } } alert(add(1,2,4)); </script>functon必须是空的function(){}
依据arguments是一个数组,能够依据他的长度length来推断函数的參数的个数...