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调试过程中找不到哪里出错的可能原因
Dec 16 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
Dec 20 Javascript
javascript 动态创建表格的2种方法总结
Mar 04 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
微信小程序 Page()函数详解
Oct 17 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
Oct 21 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
详解angularJs中关于ng-class的三种使用方式说明
Jun 02 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 Javascript
vue3使用vue-router的完整步骤记录
Jun 20 Vue.js
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
ThinkPHP验证码使用简明教程
2014/03/05 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
javascript中length属性的探索
2011/07/31 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
js实现五星评价功能
2017/03/08 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Python解析多帧dicom数据详解
2020/01/13 Python
python实现AdaBoost算法的示例
2020/10/03 Python
python中使用np.delete()的实例方法
2021/02/01 Python
Python中生成ndarray实例讲解
2021/02/22 Python
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
创建市级文明单位实施方案
2014/03/01 职场文书
有关环保的标语
2014/06/13 职场文书
成本会计实训报告
2014/11/05 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis