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 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
JS查看对象功能代码
Apr 25 Javascript
JQuery 学习笔记 选择器之六
Jul 23 Javascript
基于jquery的滑动样例代码
Nov 20 Javascript
jQuery聚合函数实例
May 21 Javascript
简介JavaScript中的getSeconds()方法的使用
Jun 10 Javascript
JavaScript实现的圆形浮动标签云效果实例
Aug 06 Javascript
js仿百度切换皮肤功能(html+css)
Jul 10 Javascript
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
js实现图片推拉门效果代码实例
May 18 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
vue的$http的get请求要加上params操作
Nov 12 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
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
python交互式图形编程实例(二)
2017/11/17 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
Java里面有没有全局变量?为什么?
2015/02/06 面试题
社区服务活动总结
2014/05/07 职场文书
责任书格式范文
2014/07/28 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
法制教育演讲稿
2014/09/10 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
志愿者工作心得体会
2016/01/15 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
Python合并pdf文件的工具
2021/07/01 Python
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS