| 
本帖最后由 不二如是 于 2017-7-8 19:45 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 
 
 在函数代码中,使用特殊对象 arguments,程序猿兄弟就无需明确指出参数名,直接能访问到。
 
 在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。
 
 arguments非常类似Array,但实际上又不是一个Array实例。
 
 主要有以下三个玩法:
 
 
 
 
 
 实现重载
 在JavaScript内置结构中并没有函数重载的功能,为啥呢?
 
 
 因为arguments对象能够模拟重载。 
 比如,最简单的一种方式,根据参数的个数进行重载,代码如下所示:
 
 复制代码<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>鱼C出品</title>
</head>
<body>
<script>
    function showLenght(){
        switch(arguments.length)
        {
            case 0:
                document.write("长度为0");
                break;
            case 1:
                document.write("长度为1");
                break;
            case 2:
                document.write("长度为2");
                break;
            case 3:
                document.write("长度为3");
                break;
            default:
                document.write("超出可预测范围");
                break;
        }
    }
    showLenght('Welcome','to','Fishc');
</script>
</body>
</html>
 
 输出3,意味着arguments对象可以加载到“变量的长度”,而不需要起多个名字的方法。
 
 利用arguments对象实现函数重载的方式可以有几种,除了上面根据参数的个数。
 
 还可以根据传入参数的类型来执行不同的操作。
 
 也可以利用参数中特殊的参数值来进行不同的操作。
 
 
 
 同数组下标访问实参
 JavaScript中每个函数都会有一个Arguments对象的实例arguments。
 
 它引用着函数的实参,而且可以用数组下标的方式来引用arguments的元素。
 
 来段代码:
 
 复制代码<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>鱼C出品</title>
</head>
<body>
<script>
    function showLenght(){
       var test = "";
       for(var i = 0 ; i < arguments.length; i++)
       {
           test += arguments[i] + ' ';
       }
       document.write(test);
    }
    showLenght('Welcome','to','Fishc');
</script>
</body>
</html>
 
 arguments.length为函数实参的个数。
 
 友情提示:
 
 
 
 
 
 
 这位鱼油,如果喜欢本系列Js帖子,请订阅 专辑☞(传送门 )(不喜欢更要订阅   ) |