代碼和結果
function a(){
console.log("a.caller",a.caller);
console.log("arguments.callee",arguments.callee);
}
(function b(){
a()
})();
對比
- caller是通過函數來調用,返回的是該函數的調用環境,也就是調用棧的最頂層(當最頂層爲全局作用域時,返回null)
- callee是通過arguments對象來調用,返回的是執行時的函數環境,通常用於匿名函數遞歸調用自身
注意
在ES5嚴格模式中,該方法被廢棄不再使用