1、arguments获取函数参数,arguments为一个数组
function getParmes(a,b){
alert(arguments.length);//arguments函数的参数构成的数组,有lenth属性
if(arguments.length==1){
alert(arguments[0]);
}else if(arguments.length==2){
alert(arguments[0]+" "+arguments[1]);
}
}
调用:
getParmes("a");
2、callee
//求阶乘的方法
function jiecheng(n){
if(n==1){
return 1;
}
return n*jiecheng(n-1); //需要在函数内部调用自己
}
return n*jiecheng(n-1); 可以替换为:return n*arguments.callee(n-1);
替换的好处:可以降低代码耦合度
var jc=jiecheng; //对象的引用传递(函数也是对象)
alert(jc(4)); //方法可以正常运行
如果改为如下:
var jc=jiecheng; //对象的引用传递(函数也是对象)
jiecheng=null;
alert(jc(4)); //不能正常运行,jiecheng方法被销毁,会报错,此时,修改return n*jiecheng(n-1); ===》return n*jc(n-1);则可以正常运行 。这样提高了代码的耦合度