caller(谁调我)、callee(我是谁)

caller,英文:来访者。 简朴的说就是谁打电话给我,谁在挪用我。

callee,英文:被访者。简朴的说就是接电话的人,就是正在实行的函数。

caller是Function的属性
callee是argument的属性

测试caller的demo

function callerDemo() {
    if (callerDemo.caller) {
        var a = callerDemo.caller.toString();
        alert(a);
    } else {
        alert("this is a top function");
    }
}
function handleCaller() {
    callerDemo();
}
handleCaller();  //"function handleCaller() { callerDemo();}"

测试callee的demo

function calleeDemo() {
    alert(arguments.callee);
}
calleeDemo();//返回函数function calleeDemo() { alert(arguments.callee);}
ES5 提醒: 在严厉形式下,arguments.callee 会报错 TypeError,由于它已被废除了。
    原文作者:FatDong1
    原文地址: https://segmentfault.com/a/1190000007488363
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞