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 相关文章推荐
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
express的中间件cookieParser详解
Dec 04 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
详解AngularJS中自定义过滤器
Dec 28 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
Jul 12 Javascript
聊一聊jQuery插件uploadify使用方法
Aug 24 Javascript
js实现日期显示的一些操作(实例讲解)
Jul 27 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
js 中rewrap-ajax.js插件实例代码
Oct 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 strtr() 函数使用说明
2008/11/21 PHP
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
设定php简写功能的方法
2019/11/28 PHP
Eval and new funciton not the same thing
2012/12/27 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
python 快速排序代码
2009/11/23 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
Pytorch释放显存占用方式
2020/01/13 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
C#基础面试题
2016/10/17 面试题
如何定义一个可复用的服务
2014/09/30 面试题
日语专业推荐信
2013/11/12 职场文书
工地质量标语
2014/06/12 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
房产授权委托书范本
2014/09/22 职场文书
横空出世观后感
2015/06/09 职场文书
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL