javascript中caller和callee区别以及使用场景

javascript中caller和callee区别以及使用场景英文翻译 caller nbsp n 访客 通信 呼叫者 打电话者 召集员 calleen 被召者 caller 理解为指的是调用当前函数的函数 也就是调用者 如果没有其他函数调用的话就是 null 举个栗子如果 callerTest 是直接执行的函数 那么 callerTest caller null 如果 test 去调用 callerTest 那么 callerTest caller test 具

英文翻译

caller 

n. 访客;[通信] 呼叫者;打电话者;召集员

  • callee
    • n. 被召者


caller

理解为指的是调用当前函数的函数,也就是调用者,如果没有其他函数调用的话就是null,举个栗子如果callerTest()是直接执行的函数,那么callerTest.caller===null,如果test()去调用callerTest(),那么callerTest.caller===test,具体可以看看下面这段代码

function callerTest(){ console.log(callerTest.caller); } function test(){ callerTest(); } test();//test callerTest();//null

callee

可以理解为当前执行的函数即被调用的函数,也就是被调用者,举个栗子如果calleeTest为当前执行的函数,那么arguments.callee===calleeTest,因此也就有了callee的一个应用,可以用于递归调用,虽然可以直接写为calleeTest,但是这样显然耦合度比较高,不利于代码维护,而如果写成arguments.callee的话就可以降低耦合度

代码

function calleeTest(){ console.log(calleeTest===arguments.callee); } function test(){ calleeTest(); } test();//true calleeTest();//true



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232510.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号