caller和callee的区别介绍及演示结果


Posted in Javascript onMarch 10, 2013

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

caller和callee的区别介绍及演示结果

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

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

输出结果:

caller和callee的区别介绍及演示结果

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

caller和callee的区别介绍及演示结果

Javascript 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
Oct 23 Javascript
toString()一个会自动调用的方法
Feb 08 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
Jul 18 Javascript
jquery输入数字随机抽奖特效的简单实现代码
Jun 10 Javascript
AngularJS优雅的自定义指令
Jul 01 Javascript
AngularJS基础 ng-mousemove 指令简单示例
Aug 02 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
Aug 05 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
jquery mobile移动端幻灯片滑动切换效果
Apr 15 Javascript
vue中post请求以a=a&b=b 的格式写遇到的问题
Apr 27 Javascript
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 Javascript
JavaScript表达式:URL 协议介绍
Mar 10 #Javascript
javascript中的void运算符语法及使用介绍
Mar 10 #Javascript
jquery获取table中的某行全部td的内容方法
Mar 08 #Javascript
通过上下左右键和回车键切换光标实现代码
Mar 08 #Javascript
jquery怎样实现ajax联动框(二)
Mar 08 #Javascript
jquery怎样实现ajax联动框(一)
Mar 08 #Javascript
实现点击列表弹出列表索引的两种方式
Mar 08 #Javascript
You might like
php学习笔记之面向对象编程
2012/12/29 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
Bootstrap精简教程
2015/11/27 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
layui实现三级联动效果
2019/07/26 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
python数据结构之链表详解
2017/09/12 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
python2.7到3.x迁移指南
2018/02/01 Python
python实现俄罗斯方块
2018/06/26 Python
python游戏地图最短路径求解
2019/01/16 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
数控技术专业推荐信
2013/11/01 职场文书
校本教研工作制度
2014/01/22 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
应收账款管理制度
2015/08/06 职场文书
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏