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读出文本文件内容
Jan 22 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
Nov 26 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
Dec 16 Javascript
Javascript实现快速排序(Quicksort)的算法详解
Sep 06 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
js继承实现方法详解
Dec 16 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
浅谈angular.js跨域post解决方案
Aug 30 Javascript
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
浅谈vue中document.getElementById()拿到的是原值的问题
Jul 26 Javascript
Vue中父子组件的值传递与方法传递
Sep 28 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 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
php 分库分表hash算法
2009/11/12 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php制作简单模版引擎
2016/04/07 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
使用JavaScript switch case 另类写法
2010/03/14 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
Python中基本的日期时间处理的学习教程
2015/10/16 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
Django stark组件使用及原理详解
2019/08/22 Python
python读取Excel表格文件的方法
2019/09/02 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
2014年个人教学工作总结
2014/12/09 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android