caller和callee的区别

news/2024/7/2 15:35:15

caller

caller返回一个函数的引用,这个函数调用了当前的函数。

使用这个属性要注意:

1 这个属性只有当函数在执行时才有用

2 如果在javascript程序中,函数是由顶层调用的,则返回null

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

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

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

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

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

输出结果:

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本身的引用,结果如下:

 

转载于:https://www.cnblogs.com/chaoguo1234/archive/2013/03/08/2949988.html


http://lihuaxi.xjx100.cn/news/277934.html

相关文章

C与指针课后答案与编程练习(第一章)

1.7问题 1.空白规则很大程度影响程序的美观性,就如python强制要求缩进行一样,良好的缩进可以大大提高程序的可读性,是写一个程序必不可少的环节。所以说空白使用规则很重要,也很必要。 2.这样说可以将不同模块的程序分类放置&…

elasticsearch docker无法挂载_使用Docker安装Graylog日志收集系统

1、创建并进入到用于存放Graylog配置文件的目录mkdir -p /data/graylog/config && cd /data/graylog/config2、下载Graylog配置文件wget https://raw.githubusercontent.com/Graylog2/graylog-docker/2.4/config/graylog.confwget https://raw.githubusercontent.com/G…

mupdf不支持x64_ARM版Win10用户狂喜 微软全新补丁让应用不再不兼容

Windows 10 on ARM仅支持模拟32位的X86应用程序,这意味着大多数的桌面应用是无法在这一平台上运行的,这在很大程度上限制该平台的发展。为了解决这一问题,微软在内部开发频道推出可用于ARM的X64仿真预览版程序Build 21277。应用程序不兼容在原…

NLP学习思维导图,非常的全面和清晰

作者 | Tae Hwan Jung & Kyung Hee编译 | ronghuaiyang【导读】Github上有人整理了NLP的学习路线图(思维导图),非常的全面和清晰,分享给大家。先奉上GitHub地址:https://github.com/graykode/nlp-roadmapnlp-roadm…

干货 | 神经网络原来这么简单,机器学习入门贴送给你

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达本文转自:视学算法神经网络概论作者说,神经网络并不复杂!“神经网络”一词很流行,人们通常认为它很难,但其实要…

《Typecript 入门教程》 2、访问控制符:public、private、protected、readonly

声明类的属性和方法时可以设置使用访问控制符,访问控制符设置类的属性和方法能不能在类的外部被访问 1. 默认为 public,使用public定义的属性和方法在类的内部和外部都可以访问 2. private 仅可在类的内部访问,在类的外部不可访问 3. protect…

深度学习败于“捷径”

编译 | 蒋宝尚、陈大鑫编辑 | 丛末转自 | AI科技评论深度学习的未来在哪里?这一话题已经有过了无数讨论,大部分讨论都承认当前的深度学习还不是真正的智能,必须转向理解、常识。但是只看当前AI成功的案例,似乎还无法窥探理解。近日…

Arch Linux 中包管理的图形化的应用

即使你设法安装了 Arch Linux,你也会注意到它严重依赖命令行。如果你需要安装应用或更新系统,那么必须打开终端。 ​​安装 Arch Linux​​​ 有一些挑战性。这就是为什么 ​​有几个基于 Arch 的发行版​​ 通过提供图形化的安装程序使事情变得简单。 …