javascript arguments使用示例


Posted in Javascript onDecember 16, 2014
<script Language="JavaScript">

//第一个参数值. 

function test(a,b,c,d){ 

  alert(arguments[0]); 

} 

//arguments[0]实际上就是a,同理,arguments[1]就是b,依次c,d

</script>

 
 <script Language="JavaScript">

{

    function function_Name(exp1,exp2,exp3,exp4)

    {

        var umber="";

        umber=arguments.length;

        alert(umber);

    }

            function_Name('a','b','c','d');         都可以调用

        //    function_Name("a","b","c","d");     都可以调用

}

</script>

1、在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可)。

 Array.prototype.testArg = "test";

 function funcArg() {

     alert(funcArg.arguments.testArg);  

     alert(funcArg.arguments[0]);

 }

 alert(new Array().testArg); // result: "test"

 funcArg(10);                // result: "undefined"  "10"

2、arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的,但是针对其中一个无值的情况下,对于此无值的情形值不会得以同步。如下代码可以得以验证。

 function f(a, b, c){

     alert(arguments.length);   // result: "2"

     a = 100;

     alert(arguments[0]);       // result: "100"

     arguments[0] = "qqyumidi";

     alert(a);                  // result: "qqyumidi"

     alert(c);                  // result: "undefined"

     c = 2012;

     alert(arguments[2]);       // result: "undefined"

 }

 f(1, 2);

3、由JavaScript中函数的声明和调用特性,可以看出JavaScript中函数是不能重载的。

根据其他语言中重载的依据:"函数返回值不同或形参个数不同",我们可以得出上述结论:

第一:Javascript函数的声明是没有返回值类型这一说法的;

第二:JavaScript中形参的个数严格意义上来讲只是为了方便在函数中的变量操作,实际上实参已经存储在arguments对象中了。

另外,从JavaScript函数本身深入理解为什么JavaScript中函数是不能重载的:在JavaScript中,函数其实也是对象,函数名是关于函数的引用,或者说函数名本身就是变量。对于如下所示的函数声明与函数表达式,其实含以上是一样的(在不考虑函数声明与函数表达式区别的前提下),非常有利于我们理解JavaScript中函数是不能重载的这一特性。

 function f(a){

     return a + 10;

 }

 function f(a){

     return a - 10;

 }

 // 在不考虑函数声明与函数表达式区别的前提下,其等价于如下

 var f = function(a){

     return a + 10;

 }

 var f = function(a){

     return a - 10;

 }

4、arguments对象中有一个非常有用的属性:callee。arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身。

如下:

 function count(a){

     if(a==1){

         return 1;

     } 

     return a + arguments.callee(--a);

 }

 var mm = count(10);

 alert(mm);
Javascript 相关文章推荐
JavaScript 定义function的三种方式小结
Oct 16 Javascript
html组件不可输入(只读)同时任何组件都有效
Apr 01 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
Feb 23 Javascript
javascript中FOREACH数组方法使用示例
Mar 01 Javascript
JavaScript重载函数实例剖析
May 13 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
Jul 10 Javascript
JS实现图片上传预览功能
Nov 21 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 Javascript
详解微信小程序轨迹回放实现及遇到的坑
Feb 02 Javascript
javascript实现日期格式转换
Dec 16 #Javascript
javascript实现禁止复制网页内容
Dec 16 #Javascript
node.js中的fs.rmdirSync方法使用说明
Dec 16 #Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 #Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
Dec 16 #Javascript
node.js中的fs.fchownSync方法使用说明
Dec 16 #Javascript
node.js中的fs.fchown方法使用说明
Dec 16 #Javascript
You might like
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php实现异步数据调用的方法
2015/12/24 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
Python 功能和特点(新手必学)
2015/12/30 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
Python中url标签使用知识点总结
2020/01/16 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
小学校园活动策划
2014/01/30 职场文书
房地产营销策划方案
2014/02/08 职场文书
鲜花方阵解说词
2014/02/13 职场文书
汉语言文学职业规划
2014/02/14 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
天那边观后感
2015/06/09 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
MySQL系列之十一 日志记录
2021/07/02 MySQL
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏