函数内部属性:在函数内部,有两个特殊的对象:arguments和this。
arguments有一个callee属性,该属性是一个指针,指向拥有这个arguments对象的函数。
function factorial(num){
if (num<=1) {
return 1;
}else{
//return(num * factorial(num - 1)); //有耦合
return num * arguments.callee(num - 1); // 优化后的 //callee属性,该属性是一个指针,指向拥有这个arguments对象的函数。例
};
};
var trueFactoraial = factorial;
factorial = function(){
return 0;
};
alert(trueFactoraial(5)); //120
alert(factorial(5)); //0
ps:callee在严格模式下是不能识别的。
时间: 2024-11-09 00:49:30