在一个函数体内,标识符arguments具有特殊含义,它是调用对象的一个特殊属性,用来引用Arguments对象。Arguments对象像数组,可以按照数字获取传递给函数的参数值。
例:
<HTML><HEAD>
<TITLE></TITLE>
<META content="Microsoft Visual Studio" name=GENERATOR>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<script language=javascript>
function add()
{
var total=0;
for(var i=0;i<arguments.length;i++)
{
//检查输入的参数是否是数字
if( (typeof arguments[i]) !="number")
{
window.alert("输入的参数不是数字,程序中止!");
return ;
}
//累加
total += arguments[i];
}
window.alert(total);
}
</script>
</HEAD>
<BODY>
<input id=Button2 type=button value=Button onclick="add(212,434,32,3432,2)">
</BODY></HTML>
<TITLE></TITLE>
<META content="Microsoft Visual Studio" name=GENERATOR>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<script language=javascript>
function add()
{
var total=0;
for(var i=0;i<arguments.length;i++)
{
//检查输入的参数是否是数字
if( (typeof arguments[i]) !="number")
{
window.alert("输入的参数不是数字,程序中止!");
return ;
}
//累加
total += arguments[i];
}
window.alert(total);
}
</script>
</HEAD>
<BODY>
<input id=Button2 type=button value=Button onclick="add(212,434,32,3432,2)">
</BODY></HTML>
callee属性
Arguments对象定义了callee属性,用来引用当前正在执行的函数。这对未命名的函数调用自身非常有用。
//阶乘函数
function(x)
{
if(x<=1) return 1;
return x*arguments.callee(x-1);
}
function(x)
{
if(x<=1) return 1;
return x*arguments.callee(x-1);
}
函数的length属性是指要求的参数个数(arguments.callee.length),而arguments.length的是指实际传递的参数个数(arguments.length)。