callee和caller

callee

属于arguments的一个属性,是一个指针,指向拥有arguments对象的函数,在函数内部,arguments.callee指向的是函数本身

例如阶乘函数:

function factorial(num){     
if (num <=1) {         
  return 1;     
} else {         
  return num * factorial(num-1)     
} }

// 改用callee实现
function factorial(num){      
 if (num <=1) {         
    return 1;     
 } else {         
   return num * arguments.callee(num-1)     
} } 

caller

函数对象的属性,保存着调用当前函数的函数的引用

function outer(){     
  inner();  
}  

function inner(){     
  alert(inner.caller); 
}  

outer(); 

注意

calleecaller在严格模式下会报错

你可能感兴趣的:(callee和caller)