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 开发规范要求(图文并茂)
Jun 11 Javascript
鼠标滑在标题上显示图片的JS代码
Nov 19 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
浅谈javascript的Touch事件
Sep 27 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
老生常谈javascript的类型转换
Oct 12 Javascript
深入理解JavaScript继承的多种方式和优缺点
May 12 Javascript
Angular2搜索和重置按钮过场动画
May 24 Javascript
node+koa实现数据mock接口的方法
Sep 20 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
Dec 18 Javascript
javaScript产生随机数的用法小结
Apr 21 Javascript
如何实现echarts markline标签名显示自己想要的
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
php中的boolean(布尔)类型详解
2013/10/28 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
详解python之协程gevent模块
2018/06/14 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python 如何在字符串中插入变量
2020/08/01 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
大学生毕业鉴定
2014/01/31 职场文书
中学生打架检讨书
2014/10/13 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS