写道
本文转自:http://blog.csdn.net/mevicky/article/details/47903457
如果转载,请写明出处
如果转载,请写明出处
本文介绍arguments属性。 每一个函数在定义的时候都会有一个内置的arguments属性,这个arguments属性类似数组但又不是数组。它具有数组的访问方式和length属性,却又有caller,callee等属性。 我们来举一个arguments的使用例子: var func = function(a,b){ document.write(a+' '+b+' '+"<br>"); document.write(arguments[0]+' '+arguments[1]+' '+arguments[2]+' '+"<br>"); } func(1,2,3); 结果为: 1 2 1 2 3 可以看到,我们可以通过arguments来访问函数中的参数。但是可以发现一点,即使形参中只定义了两个,而实参出现三个,arguments也可以访问到。这是怎么回事呢?这里我们就需要介绍一下arguments的属性了。 caller 对于函数来说,caller 属性只有在函数执行时才有定义。假如函数是由顶层调用的,那么 caller 包含的就是 null 。假如在字符串上下文中使用 caller 属性,那么结果和 functionName.toString 相同,也就是说,显示的是函数的反编译文本。但是由于caller在后续版本会被弃用,这里就不详细介绍了。 callee callee 属性是 arguments 对象的一个成员,他表示对函数对象本身的引用,这有利于匿名函数的递归或确保函数的封装性。callee拥有length属性,这个属性有时候用于验证还是比较好的。arguments.length是实参度,arguments.callee.length是形参长度,由此能够判断调用时形参长度是否和实参长度一致。 看下面实例: function func(a,b){ document.write(a+' '+b+' '+"<br>"); document.write(arguments[0]+' '+arguments[1]+' '+arguments[2]+' '+"<br>"); document.write(arguments.length+"<br>");//实参个数 document.write(arguments.callee.length+"<br>")//形参个数 } func(1,2,3); 结果为: 1 2 1 2 3 3 2 callee还有一个作用就是用来调用函数自身,用法如下: function commonParentNode(oNode1, oNode2) { if(oNode1.contains(oNode2)){ return oNode1; }else if(oNode2.contains(oNode1)){ return oNode2; }else { return arguments.callee(oNode1.parentNode,oNode2);//递归调用 } } 通过arguments.callee实现递归。
布瑞泽的童话-博客 写道
http://blog.csdn.net/mevicky/article/details/47903457
相关推荐
理解Javascript函数形式参数与arguments
JavaScript深入之类数组对象与argumentsJavaScript深入系列第十三篇,讲解类数组对象与对象的相似与差异以及arguments的注意要点类
JavaScript中arguments的使用方法详解 js这是一门弱语言,不像其他语言如c,java等,有严格的规范, 所以现在也流传着一种说法,js本来就不是一种语言; 说回arguments,它是js中函数内置的一个对象,而执行函数...
arguments是JavaScript里的一个内置对象,像数组结构一样存储参数的传递,这里我们就来深入解析JavaScript中的arguments对象,需要的朋友可以参考下
javascript类数组的深入理解 js数组,相比大家都很熟悉,因为走到哪都要用,但它有个“双胞胎弟弟” ,叫类数组(也叫伪数组),可能有的人了解,有的人不了解,今天我们来看一看。 顾名思义,这玩意儿肯定是个长...
主要介绍了Javascript中arguments和arguments.callee的区别浅析,本文用一个实例来理解它们的区别,需要的朋友可以参考下
主要介绍了Javascript中arguments用法,实例分析了javascript利用arguments实现模拟重载功能,需要的朋友可以参考下
ECMAScript中的函数并不介意传递的参数有多少,也不介意是什么类型。由于JavaScript允许函数有不定数目的参数,所以我们需要一种机制,可以在 函数体内 ...这篇文章将详细介绍Javascript中的arguments对象和使用方法。
arguments是什么? arguments是函数调用时,创建的一个类似的数组但又不是数组的对象,并且它存储的是实际传递给函数的参数,并不局限于函数声明的参数列表哦。 尼玛,什么意思? 写个demo看看,代码见下 <!...
在上篇文章中我们讨论了javascript中的默认参数,这篇文章,我们来讨论下javascript的arguments参数对象。 如下例的一个函数,我们如何根据传入参数的不同来做不同的处理呢? 代码如下: function addAll () { // ...
1、在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用...
主要介绍了javascript内置对象arguments,实例讲解arguments是什么怎么用,需要的朋友可以参考下
本文实例讲述了JavaScript中arguments和this对象用法。分享给大家供大家参考,具体如下: 在函数内部有两个特殊的对象 : arguments和this。 1、arguments对象 js函数不介意定义多少参数,也不在乎传递进来多少参数,...
javascript arguments解释,实现可变长参数。 在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一、可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西。 先来看看应用...
最近在学习javascript的函数,函数是javascript的一等对象,想要学好javascript,就必须深刻理解函数。本人把学习的过程整理成文章,一是为了加深自己函数的理解,二是给读者提供学习的途径,避免走弯路。内容有些多...
主要介绍了javascript利用apply和arguments复用方法,有需要的朋友可以参考一下
arguments 是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的。所有主要的js函数库都利用了arguments对象。所以agruments对象对于javascript程序员来说是必需熟悉的。在javascript...