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 相关文章推荐
Jquery中"$(document).ready(function(){ })"函数的使用详解
Dec 30 Javascript
JQuery实现表格动态增加行并对新行添加事件
Jul 30 Javascript
jQuery简单tab切换效果实现方法
Apr 08 Javascript
javascript入门教程基础篇
Nov 16 Javascript
js实现鼠标左右移动,图片也跟着移动效果
Jan 25 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
js实现音乐播放控制条
Sep 09 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
Vue仿微信app页面跳转动画效果
Aug 21 Javascript
JavaScript实现背景自动切换小案例
Sep 27 Javascript
javascript实现商品图片放大镜
Nov 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 基于文件头的文件类型验证类函数
2012/05/01 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
python中的列表推导浅析
2014/04/26 Python
python中的sort方法使用详解
2014/07/25 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
python中使用print输出中文的方法
2018/07/16 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
合伙经营协议书
2014/04/18 职场文书
核心价值观演讲稿
2014/05/13 职场文书
土地转让协议书
2014/09/27 职场文书
给上级领导的感谢信
2015/01/22 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle