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 相关文章推荐
使javascript也能包含文件
Oct 26 Javascript
JavaScript Object的extend是一个常用的功能
Dec 02 Javascript
为超链接加上disabled后的故事
Dec 10 Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 Javascript
JS获取时间的方法
Jan 21 Javascript
用javascript实现自动输出网页文本
Jul 30 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
CSS中position属性之fixed实现div居中
Dec 14 Javascript
js实现下拉列表选中某个值的方法(3种方法)
Dec 17 Javascript
react-native 完整实现登录功能的示例代码
Sep 11 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
Feb 05 Javascript
JavaScript中的E-mail 地址格式验证
Mar 28 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中读取文件的8种方法和代码实例
2014/08/05 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
js实现分割上传大文件
2016/03/09 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
Python实现的计算器功能示例
2018/04/26 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
如何用Python 加密文件
2020/09/10 Python
Python try except else使用详解
2021/01/12 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
租房协议书
2014/04/10 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
团代会邀请函
2015/02/02 职场文书
决心书格式及范文
2019/06/24 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
vue修饰符.capture和.self的区别
2022/04/22 Vue.js
Java存储没有重复元素的数组
2022/04/29 Java/Android