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 相关文章推荐
ExtJS 2.0实用简明教程 之Border区域布局
Apr 29 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
Oct 11 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
Jan 24 Javascript
HTTP 304错误的详细讲解
Nov 13 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
May 12 Javascript
connect中间件session、cookie的使用方法分享
Jun 17 Javascript
JS延时提示框实现方法详解
Nov 26 Javascript
利用JavaScript如何查询某个值是否数组内
Jul 30 Javascript
详解ES6之async+await 同步/异步方案
Sep 19 Javascript
vue 路由守卫(导航守卫)及其具体使用
Feb 25 Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 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
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
js+html获取系统当前时间
2017/11/10 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
用Python编写简单的定时器的方法
2015/05/02 Python
python获取外网ip地址的方法总结
2015/07/02 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
numpy返回array中元素的index方法
2018/06/27 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
python Tkinter的图片刷新实例
2019/06/14 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
python raise的基本使用
2020/09/10 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
cf搞笑广告词
2014/03/14 职场文书
学生会竞聘书范文
2014/03/31 职场文书
空气的环保标语
2014/06/12 职场文书
课外活动总结范文
2014/07/09 职场文书
先进工作者推荐材料
2014/12/23 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
高一数学教学反思
2016/02/18 职场文书
600字作文之感受大自然
2019/11/27 职场文书
Python测试框架pytest高阶用法全面详解
2022/06/01 Python