代码和结果
function a(){
console.log("a.caller",a.caller);
console.log("arguments.callee",arguments.callee);
}
(function b(){
a()
})();
对比
- caller是通过函数来调用,返回的是该函数的调用环境,也就是调用栈的最顶层(当最顶层为全局作用域时,返回null)
- callee是通过arguments对象来调用,返回的是执行时的函数环境,通常用于匿名函数递归调用自身
注意
在ES5严格模式中,该方法被废弃不再使用