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 定时器调用传递参数的方法
Nov 12 Javascript
jquery.validate使用攻略 第三部
Jul 01 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
举例说明如何为JavaScript的方法参数设置默认值
Nov 17 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
微信小程序 数据遍历的实现
Apr 05 Javascript
原生JS进行前后端同构
Apr 22 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
js简单实现自动生成表格功能示例
Jun 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
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
总结python中pass的作用
2019/02/27 Python
Django如何实现上传图片功能
2019/08/16 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
python构造函数init实例方法解析
2020/01/19 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
高三历史教学反思
2014/01/09 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
开平碉楼导游词
2015/02/06 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android