JavaScript 之arguments、caller 和 callee 介绍

来源:http://www.sh-fengwen.com 作者:瘦身美容 人气:122 发布时间:2019-09-04
摘要:1.前言 arguments 该对象代表正在执行的函数和调用它的函数的参数。 arguments, caller ,   callee 是什么? Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访

1.前言

arguments 该对象代表正在执行的函数和调用它的函数的参数。

arguments, caller ,   callee 是什么?

Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments对象。arguments对象只有函数开始时才可用

在javascript 中有什么样的作用?本篇会对于此做一些基本介绍。

 

 

 

  1. arguments

 

arguments:  在函数调用时, 会自动在该函数内部生成一个名为 arguments的隐藏对象。 该对象类似于数组, 但又不是数组。可以使用[]操作符获取函数调用时传递的实参。

callee属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名
函数的递归或者保证函数的封装性

[html]  

该属性
仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,这个属性有时候
用于验证还是比较好的。arguments.length是实参长度,arguments.callee.length是
形参长度,由此可以判断调用时形参长度是否和实参长度一致。

<!--by oscar999 2013-1-16-->    

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ";  

<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 不是一个数组,何以见得? 执行以下部分就可以知道了

[javascript]  

(function () {  

    alert(arguments instanceof Array); // false  

    alert(typeof(arguments)); // object  

})();  

对于以上立即执行函数写法不清楚的话, 可以参考

本文由美高梅游戏平台网站发布于瘦身美容,转载请注明出处:JavaScript 之arguments、caller 和 callee 介绍

关键词:

上一篇:Google Translator有多强

下一篇:没有了

最火资讯