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 相关文章推荐
IE和Mozilla的兼容性汇总event
Aug 12 Javascript
jquery 插件开发备注
Aug 27 Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
Mar 28 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
jQuery中Datatables增加跳转到指定页功能
Feb 08 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
React BootStrap用户体验框架快速上手
Mar 06 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 Javascript
node.js基础知识汇总
Aug 25 Javascript
如何手写一个简易的 Vuex
Oct 10 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 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
Express.JS使用详解
2014/07/17 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
js实现String.Fomat的实例代码
2016/09/02 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
如何在python中写hive脚本
2019/11/08 Python
python 实现让字典的value 成为列表
2019/12/16 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
英文版餐饮业求职信
2013/10/18 职场文书
公积金单位接收函
2014/01/11 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
新郎新娘致辞
2015/07/31 职场文书
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle