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 相关文章推荐
封装html的select标签的js操作实例
Jul 02 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
javascript中apply、call和bind的使用区别
Apr 05 Javascript
利用Javascript实现BMI计算器
Aug 16 Javascript
详解Vue.js分发之作用域槽
Jun 13 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
浅谈React和Redux的连接react-redux
Dec 04 Javascript
vue代码分割的实现(codesplit)
Nov 13 Javascript
JS实现长图上下滚动效果
Mar 19 Javascript
JavaScript动态生成表格的示例
Nov 02 Javascript
关于Vue中$refs的探索浅析
Nov 05 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
php5 and xml示例
2006/11/22 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
python实现远程控制电脑
2019/05/23 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
毕业生的求职信范文分享
2013/12/04 职场文书
小学门卫岗位职责
2013/12/17 职场文书
中层干部岗位职责
2013/12/18 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
青春寄语大全
2014/04/09 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
写给妈妈的感谢信
2015/01/22 职场文书