一楼说的很明白了,函数就是一个对象。函数运行需要占用一些资源就像操作系统运行程序程序需要占用一些
资源一样。函数占用的资源就是js解释机分配给它的arguments对象和用来存放局部变量的必包对象,可能不太
确切,因为很有可能arguments对象也是放在必包里边的。建议你看看周爱民的书
var sum = function(n){
alert(arguments.length);
alert(sum===arguments.callee);
}
sum(1,2,3);
arguments.length 是实参长度
arguments.callee.length 是形参长度
这里有个简单的例子,是比较参数的长度的:
function test(x,y,z)
{
checkArgu(arguments);
return x+y+z;
}
function checkArgu(argu)
{
var argu_test1, argu_test2;
argu_test1 = argu.length;
argu_test2 = argu.callee.length;
if(argu_test1 == argu_test2)
alert("yes");
else
alert("no");
}
test(1,2,3);
test(1,2,3,4);
function factorial(n){/*
alert(arguments.length);
alert(arguments.callee.length);*/
//sum===arguments.callee
if (n <= 0)
return 1;
else
return n * arguments.callee(n - 1)
}
alert(factorial(3,2));
})();
loading