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判断浏览器是否是IE的比较好的办法
May 08 Javascript
JS随即打乱数组实现代码
Dec 03 Javascript
js控制页面控件隐藏显示的两种方法介绍
Oct 09 Javascript
JQuery EasyUI 数字格式化处理示例
May 05 Javascript
jquery.idTabs 选项卡使用示例代码
Sep 03 Javascript
js初始化验证实例详解
Nov 26 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
Sep 16 Javascript
基于复选框demo(分享)
Sep 27 Javascript
vue使用中的内存泄漏【推荐】
Jul 10 Javascript
微信小程序实现炫酷的弹出式菜单特效
Jan 28 Javascript
JavaScript 实现下雪特效的示例代码
Sep 09 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
PHP小技巧之函数重载
2014/06/02 PHP
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
python中mechanize库的简单使用示例
2014/01/10 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python pycharm的安装及其使用
2019/10/11 Python
Python with语句和过程抽取思想
2019/12/23 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
职工运动会感言
2014/02/07 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
自查自纠工作总结
2014/10/15 职场文书
文化大革命观后感
2015/06/17 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis
gateway网关接口请求的校验方式
2021/07/15 Java/Android
Linux中各个目录的作用与内容
2022/06/28 Servers
Python sklearn分类决策树方法详解
2022/09/23 Python