简介:在JavaScript中,有一个特殊的对象-Arguements对象,它是当前函数的一个内置属性,它类似与Array对象(数组形式),但不是Array的一个实例。下面通过代码来论证:
<script type="text/javascript"> Array.prototype.testArg="test"; //给Array对象添加了一个自定义属性testArg,如果arguments是Array的实例那么它就能调用这个自定义属性 function funcArg(){ alert(funcArg.arguments.testArg); //输出:"undefined"说明arguments并不是Array对象的一个实例 alert(funcArg.arguments[0]); //输出10 注意funcArg()并没有形式参数接收下面funcArg(10)传递过来的实参,但是funcArg.arguments[0]还是输出了传递过来的实参的值,
//所以说明arguments是由实参决定并影响的。 } alert(new Array().testArg); //输出test funcArg(10); //输出:"undefined",10 </script>
下面来说下arguments更高级的一个特性
Arguments的长度是由实参的个数决定的不是由实参的个数决定的,Arguments对象的内存空间里面存放的是实参的信息,而形式参数是函数内部