callee caller作用_call up和call的区别

callee caller作用_call up和call的区别caller和callee的区别

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

caller返回一个函数的引用,这个函数调用了当前的函数;callee放回正在执行的函数本身的引用,它是arguments的一个属性

caller
caller返回一个函数的引用,这个函数调用了当前的函数。
使用这个属性要注意:
1 这个属性只有当函数在执行时才有用
2 如果在javascript程序中,函数是由顶层调用的,则返回null

functionName.caller: functionName是当前正在执行的函数。

var a = function() { 
alert(a.caller); 
} 
var b = function() { 
a(); 
} 
b();

Jetbrains全家桶1年46,售后保障稳定


上面的代码中,b调用了a,那么a.caller返回的是b的引用,结果如下:

var b = function() { 
a(); 
} 

如果直接调用a(即a在任何函数中被调用,也就是顶层调用),返回null:

var a = function() { 
alert(a.caller); 
} 
var b = function() { 
a(); 
} 
//b(); 
a();

输出结果:

null

callee
callee放回正在执行的函数本身的引用,它是arguments的一个属性
使用callee时要注意:
1 这个属性只有在函数执行时才有效
2 它有一个length属性,可以用来获得形参的个数,因此可以用来比较形参和实参个数是否一致,即比较arguments.length是否等于arguments.callee.length
3 它可以用来递归匿名函数。

var a = function() { 
alert(arguments.callee); 
} 
var b = function() { 
a(); 
} 
b();

a在b中被调用,但是它返回了a本身的引用,结果如下:

var a = function() { 
alert(arguments.callee); 
} 

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

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

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


相关推荐

  • wing是什么_可分开四叶草项链

    wing是什么_可分开四叶草项链在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链,在项链上有 N 颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是 Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为 m,尾标记为 r,后一颗能量珠的头标记为 r,尾标记为 n,则聚合后释放的能量为 m×r×n(Mars 单位),新产

    2022年8月9日
    9
  • nfs 文件句柄_NFS端口

    nfs 文件句柄_NFS端口上一篇文章中我们以REMOVE请求为例讲解了NFS请求的处理过程,其中提到了文件句柄的概念,NFS需要根据文件句柄查找一个文件,这篇文章中我们就来聊聊文件句柄。在普通的文件系统中,我们用文件索引节点编号(ino)表示一个文件。ino就是一个数字,ino保存在磁盘中,整个文件系统中任何两个文件的ino都不相同,因此给定一个ino,我们就能找到对应的文件。当使用NFS文件系统时就出现问题了,我们无法通

    2022年10月18日
    4
  • git push–解决 /etc/ssh/ssh_config: Bad configuration option: permitrootlogin 问题

    git push–解决 /etc/ssh/ssh_config: Bad configuration option: permitrootlogin 问题gitpush遇到如下错误编辑/etc/ssh/ssh_config,permitrootlogin这个配置应该放到sshd_config(服务器段配置)中,ssh_config是客户端配置,所以直接把这行去掉就了…

    2022年6月8日
    141
  • pycharm需要安装哪些包_用于引入包的关键字

    pycharm需要安装哪些包_用于引入包的关键字在学习python的时候,被推荐了使用PyCharm这款IDE,但是在import包的时候却发生了问题–无法引入,但是明明通过了pip进行模块的加载,百度之后,了解到,在这款IDE中,要导入包,需要手动进行引入。如下图所示首先在file中找到settings顺带一下,如果有的同学是第一次接触这款IDE,可能对与皮肤颜色不太了解,其实也是在settings中进行设置的,而且该公司旗下的其他产品如…

    2022年8月28日
    4
  • java注解定义类型变量_JAVA自定义注解

    JAVA自定义注解注解概念注解是JavaSE5.0版本开始引入的概念,它是对java源代码的说明,是一种元数据(描述数据的数据)。注解和注释的不同注释注释是对代码的说明,给代码的读者看,便于帮读者梳理业务逻辑;在程序代码中经常看到的以@开头的大部分是注解;注解注解也是对代码的说明,需要配合工具(解析它的代码)使用,参与代码的编译,给应用程序看的;注解分类注解以@开头,我们会在应用程序中见到各…

    2022年4月13日
    64
  • windows 格式化磁盘_磁盘0没有初始化

    windows 格式化磁盘_磁盘0没有初始化#include”stdafx.h”#include”CMDiskManager.h”CMDiskManager::CMDiskManager(){}/*获取磁盘分区信息vDiskNo:磁盘序号*/DWORDCMDiskManager::GetLayoutInfo(DWORDvDiskNo){ chardiskPath[256]; //磁盘内部路径 //生成

    2026年2月6日
    12

发表回复

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

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