<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Arguments对象</title>
<script>
var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
function f(x,y,z)
{
//[function].arguments.length
//[f].arguments.length是得到f方法实际传入的参数数量
//f.length是得到f方法期望传入的参数数量(现在期望3个)
for(var i=0; i < arguments.length; i++){
$("dv").innerHTML +="第"+(i+1)+"个参数的值是:" +arguments[i] +";<br>";
}
if(arguments.length == 3)
{
alert("想要传入参数的个数是 "+ f.length);
}
else
alert("实际传入参数的个数是 "+ arguments.length); //实际传入参数的值分别是
arguments[0] = '设置第1个参数的值为';
alert(x);
}
function factorial(n){
//[function].arguments.callee 返回正被执行的Function对象,有递归功能,也就一起调用factorial函数直到某个条件为此
if (n <= 0)
return 1;
else
return n * arguments.callee(n - 1); //实现递归
}
//如4的阶乘
document.writeln(factorial(4));
</script>
</head>
<body onload="f('xxx',3)">
<div id="dv"> </div>
</body>
</html>