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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【mysql 读写分离】10分钟了解读写分离的作用

    【mysql 读写分离】10分钟了解读写分离的作用1、what读写分离读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。2、why那么为什么要读写分离呢?因为数据库的“写”(写10000条数据到oracle可能要3分钟)操作是比较耗时的。但是数据库的“读”(从oracle读10

    2022年4月29日
    33
  •  到底什么作用

     到底什么作用

    2021年9月22日
    51
  • python初级:基础知识学习-循环、列表、元组、集合、字典

    python初级:基础知识学习-循环、列表、元组、集合、字典

    2021年10月6日
    36
  • 数据库之关系模型介绍「建议收藏」

    数据库之关系模型介绍「建议收藏」本篇文章是数据库系列的第一篇文章,本系列文章是笔者在学习《数据库系统概念》这本书总结的内容,使用的数据库是mysql。关系数据库的结构关系数据库由表(table)的集合构成,每个表由唯一的名字。表中的一行代表了一组值之间的联系,而表就是这种联系的一个集合,表这个概念和数学上的关系概念是密切相关的,这也是关系数据模型名称的由来。在关系模型的术语中,关系(relation)用来指代表,元组…

    2022年7月16日
    15
  • 雪花算法的原理和实现Java

    雪花算法的原理和实现JavaSnowFlake算法,是Twitter开源的分布式id生成算法。其核心思想就是:使用一个64bit的long型的数字作为全局唯一id。在分布式系统中的应用十分广泛,且ID引入了时间戳,基本上保持自增的。这64个bit中,其中1个bit是不用的,然后用其中的41bit作为毫秒数,用10bit作为工作机器id,12bit作为序列号。…

    2022年7月25日
    13
  • Ubuntu安装Opencv3

    Ubuntu安装Opencv3Ubuntu 安装 Opencv31 安装准备 2 安装 3 配置环境 4 检验环境 Ubuntu20 04 Opencv3 4 141 安装准备 1 1 安装 cmakesudoapt getinstallcm 2 安装依赖环境 sudoapt getinstallbu essentiallib 0 devlibavcode devlibavform devlibjpeg devlibswscal devlibtiff5 devsudoapt

    2025年9月1日
    3

发表回复

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

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