caller
caller 是函数的属性,返回一个函数的援用,这个函数调用了以后的函数。
特点
1 这个属性只有当函数在执行时才有用
2 如果在 javascript 程序中,函数是由顶层调用的,则返回 null
var a = function() {alert(a.caller);
}
var b = function() {a();
}
b();
下面的代码中,b 调用了 a,那么 a.caller 返回的是 b 的援用
var a = function() {alert(a.caller);
}
var b = function() {a();
}
//b();
a();
a 在顶层调用,所以输入后果:null
callee
callee 放回正在执行的函数自身的援用,它是 arguments 的一个属性
特单
1 这个属性只有在函数执行时才无效
2 它有一个 length 属性,能够用来取得形参的个数,因而能够用来比拟形参和实参个数是否统一,即比拟 arguments.length 是否等于 arguments.callee.length
3 它能够用来递归匿名函数。
var a = function() {alert(arguments.callee);
}
var b = function() {a();
}
b();
a 在 b 中被调用,然而它返回了 a 自身的援用