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 相关文章推荐
一些有关检查数据的JS代码
Sep 07 Javascript
javascript下有关dom以及xml节点访问兼容问题
Nov 26 Javascript
javascript下IE与FF兼容函数收集
Sep 17 Javascript
在HTML代码中使用JavaScript代码的例子
Oct 16 Javascript
js中用cssText设置css样式的简单方法
Sep 19 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
Dec 25 Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 Javascript
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
vuejs实现折叠面板展开收缩动画效果
Sep 06 Javascript
前端防止用户重复提交js实现代码示例
Sep 07 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 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
php下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
python读取csv文件示例(python操作csv)
2014/03/11 Python
python实现查询IP地址所在地
2015/03/29 Python
python样条插值的实现代码
2018/12/17 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
Python中如何定义一个函数
2016/09/06 面试题
制定岗位职责的原则
2013/11/08 职场文书
高三毕业生自我鉴定
2013/12/20 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
小学生新学期寄语
2014/01/19 职场文书
银行优秀员工事迹
2014/02/06 职场文书
公司新年寄语
2014/04/04 职场文书
综合办公室岗位职责
2015/04/11 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers