马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2017-7-8 19:45 编辑
在函数代码中,使用特殊对象 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帖子,请订阅 专辑☞( 传送门)( 不喜欢更要订阅 ) |