JavaScript之arguements对象学习

时间:2021-10-31 06:34:19

简介:在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对象的内存空间里面存放的是实参的信息,而形式参数是函数内部