函数内部可以用arguments.callee来替换自己的名字,这样更换函数名字,里面的就不用更换了,比较便捷。示例如下:
function test(num){
if(num<=1){
return 1;
}else{
return arguments.callee(num-1)*num;
}
}
alert(test(5));`
this的用法:
this用在全局可以直接调用全局变量;放在局部可以用来调用局部变量。示例:
全局时:
window.color = 'orange'; window 表示最大的对象
alert(color);
alert(this.color); this此时代表 window
局部时:
var color = 'red' 这是全局的
var test = { test {} 是 局部作用域
color:'blue',
useColor:function(){
alert(this.color); 这里的this 只能 在局部范围找
}
};
test.useColor(); blue
alert(this.color); //这个this 代表全局 red
全局变量不能直接使用局部变量,会报错未定义,这是可以借用函数的call方法。示例:
var color = 'yellow';
var jinqiao = {
color: 'red'
}
function useComputer(){
alert(this.color);
}
/* useComputer();
useComputer.call(jinqiao);*/ red
useComputer.call(this); //作用域在 window yellow
useComputer.call(jinqiao); //作用域在局部 red
useComputer.call(window); //作用在全局yellow
###局部可以调用全局变量,但是全局不能直接调用局部变量