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操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
javascript模拟php函数in_array
Apr 27 Javascript
Javascript基础教程之比较null和undefined值
May 16 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
Aug 19 Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
Nov 03 Javascript
js实现鼠标左右移动,图片也跟着移动效果
Jan 25 Javascript
Vue.js实战之组件的进阶
Apr 04 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
Electron-vue脚手架改造vue项目的方法
Oct 22 Javascript
js如何获取图片url的Blob值并预览示例代码
Mar 07 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 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
如何设置mysql允许外网访问
2013/06/04 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
Django的session中对于用户验证的支持
2015/07/23 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
英语国培研修感言
2014/02/13 职场文书
青春奉献演讲稿
2014/05/08 职场文书
给公司的建议书范文
2014/05/13 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
优秀党支部申报材料
2014/12/24 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
签约仪式致辞
2015/07/30 职场文书
django 认证类配置实现
2021/11/11 Python
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS