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 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
JavaScript生成随机字符串的方法
Mar 19 Javascript
jquery自定义插件——window的实现【示例代码】
May 06 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
JavaScript 详解预编译原理
Jan 22 Javascript
基于Bootstrap实现城市三级联动
Nov 23 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 Javascript
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
vue elementui el-form rules动态验证的实例代码详解
May 23 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横向重复区域显示二法
2008/09/25 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
关于crontab的使用详解
2013/06/24 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
JavaScript之解构赋值的理解
2019/01/30 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python中类的继承代码实例
2014/10/28 Python
说一说Python logging
2016/04/15 Python
python安装pil库方法及代码
2019/06/25 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
《乡愁》教学反思
2014/02/18 职场文书
文明班集体申报材料
2014/05/23 职场文书
节约用水的口号
2014/06/20 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL