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();
注意
callee
和caller
在嚴格模式下會報錯