JavaScript 之arguments、caller 和 callee 介绍
1.前言
arguments, caller , callee 是什么?
在javascript 中有什么样的作用?本篇会对于此做一些基本介绍。
2. arguments
<!--by oscar999 2013-1-16-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Arguments Test</title>
</head>
<body>
<script>
function testArg()
{alert("real parameter count: "+arguments.length);for(var i = 0; i < arguments.length; i++){alert(arguments[i]);}
}testArg(11); //count: 1
testArg('hello','world'); // count: 2
</script>
</body>
</html>
看上去很简单。 需要注意的是 argument 保存的实参的信息。
上面有说, arguments 不是一个数组,何以见得? 执行以下部分就可以知道了
(function () {alert(arguments instanceof Array); // falsealert(typeof(arguments)); // object
})();
对于以上立即执行函数写法不清楚的话, 可以参考
http://blog.csdn.net/oscar999/article/details/8507919
alert(new Function().arguments);//return null
arguments 的完整语法如下:
[function.]arguments[n]
参数function :选项。当前正在执行的 Function 对象的名字。 n :选项。要传递给 Function 对象的从0开始的参数值索引。
3. caller
在一个函数调用另一个函数时,被调用函数会自动生成一个caller属性,指向调用它的函数对象。如果该函数当前未被调用,或并非被其他函数调用,则caller为null。
<script>
function testCaller() {var caller = testCaller.caller;alert(caller);
}function aCaller() {testCaller();
}aCaller();
4. callee
当函数被调用时,它的arguments.callee对象就会指向自身,也就是一个对自己的引用。
由于arguments在函数被调用时才有效,因此arguments.callee在函数未调用时是不存在的(即null.callee),且解引用它会产生异常。
<script>
function aCallee(arg) {alert(arguments.callee);
}function aCaller(arg1, arg2) {aCallee();}aCaller();
</script>
JavaScript 之arguments、caller 和 callee 介绍相关推荐
- JavaScript基础之 caller和callee
后面继续聊数组相关的一些事情的时候,会出现这两个属性,放在篇幅里面解释,感觉会前后不连贯,所以单独就弄出来作为一篇.本篇很短就是简单的解释其作用,所以想要深入了解的可以跳过本篇了. caller:所有 ...
- javascript下的arguments,caller,callee,call,apply示例及理解
在看到大家如此关注JS里头的这几个对象,我试着把原文再修改一下,力求能再详细的阐明个中意义.在提到上述的概念之 前,首先想说说javascript中函数的隐含参数:arguments Argument ...
- javascript 中 caller 与 callee 的作用以及用法
这两个关键字在平时编码中几乎难以用到,但它们既然存在于javascript语言体系中,那么还是有必要了解下. caller 是 javascript 函数类型的一个属性,它引用调用当前函数的函数 fu ...
- javaScript中arguments.callee知识点
javaScript中递归和arguments.callee javaScript中递归和arguments.callee知识点 arguments.callee 运行结果如下: 源码如下: < ...
- java caller_js中的caller和callee属性
caller 返回一个对函数的引用,该函数调用了当前函数. functionName.caller functionName 对象是所执行函数的名称. 如果一个函数f是在全局作用域内被调用的,则f.c ...
- call、aplly、caller、callee分别是什么?
call和aplly的区别: 概念: call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.因为 JavaScr ...
- JavaScript Function.arguments 属性详解
转载自 JavaScript Function.arguments 属性详解 arguments属性是正在执行的函数的内置属性,返回该函数的arguments对象.arguments对象包含了调用 ...
- JavaScript的arguments及其子对象
首先一个最大的问题是,arguments这个对象哪儿来的?也许有人会认为它是调用函数时引擎自带的一个局部变量,因为我们平时使用arguments的时候都是在函数中把它当作局部变量来使用的.事实上arg ...
- JavaScript、ES5和ES6的介绍和区别
JavaScript简介 JavaScript一种动态类型.弱类型.基于原型的客户端脚本语言,用来给HTML网页增加动态功能. JavaScript由三部分组成: ECMAScript(核心)+DOM ...
最新文章
- Python如何优化列表接口进行分页
- Java基础语法纯小白入门
- 云原生时代,Java还是Go?
- Pocket PC/Smartphone软件安装包之制作DIY
- 鸽子为什么喜欢盘旋_如何为鸽子回避系统设置数据收集
- 基于Redis的限流系统的设计
- PyCharm 专题
- 获取Http请求参数
- Linq之Lambda进阶
- 【Linux】ubuntu锐捷客户端连接四川大学校园网
- 计算机组装与维护选教材,计算机组装与维护校本教材.doc
- Ubuntu安装百度官方网盘客户端
- 【EI稳定检索】第二届计算机科学、电子信息工程和智能控制技术国际会议(CEI 2022)
- 地铁路线程序C语言,个人作业-北京地铁出行路线规划命令行程序完成总结
- IIS7.5 的虚拟账户
- 【T+】畅捷通T+单据生成凭证的时候,提示存在单据未正常记账,需要重新计价。
- 流量从“海量”到“僵化”,精细化运营是企业最后一根救命稻草
- 反馈纠错机制在学习中的重要性
- R使用LASSO回归预测股票收益
- 三大运营商问题反馈或投诉——移动/联通/电信 ,另附一堆使用电话
热门文章
- 关于练习美剧听写中碰到的问题
- Python(6)-文件和异常
- c++ 捕获所有异常
- 解决开启Vue项目缺少node_models包问题
- sql server 对象名无效的解决方法
- 【报告分享】2021微信视频号生态洞察报告.pdf(附下载链接)
- 【白皮书下载】开源生态白皮书(2020年).pdf(附下载链接)
- 百度提前批算法工程师面筋!效率有、高
- 苹果怎么给软件加密码_用了2年苹果手机,才知道有这几个功能,钱没花冤枉,好用!!...
- 要不要做独立站系统?做了有什么用?