arguments 对象
在将参数传递给某个函数时,可以使用 arguments 对象来访问有关传递给该函数的参数的信息。
arguments 对象的一些重要方面包括:
■ arguments 对象是一个数组,其中包括传递给函数的所有参数。
■ arguments.length 属性报告传递给函数的参数数量。
■ arguments.callee 属性提供对函数本身的引用,该引用可用于递归调用函数表达式。
在 ActionScript 3.0 中,函数调用中所包括的参数的数量可以大于在函数定义中所指定的参数数量,但是,如果参数的数量小于必需参数的数量,在严格模式下将生成编译器错误。您可以使用 arguments 对象的数组样式来访问传递给函数的任何参数,而无需考虑是否在函数定义中定义了该参数。 下面的示例使用 arguments 数组及 arguments.length 属性来输出传递给 traceArgArray() 函数的所有参数:
function traceArgArray(x:int):void
{
for (var i:uint = 0; i < arguments.length; i++)
{
trace(arguments[i]);
}
}
traceArgArray(1, 2, 3);
// 输出:
// 1
// 2
// 3
arguments.callee 属性通常用在匿名函数中以创建递归。您可以使用它来提高代码的灵活性。
如果递归函数的名称在开发周期内的不同阶段会发生改变,而且您使用的是arguments.callee(而非函数名) ,则不必花费精力在函数体内更改递归调用。在下面的函数表达式中,使用 arguments.callee 属性来启用递归:
var factorial:Function = function (x:uint)
{
if(x == 0)
{
return 1;
}
else
{
return (x * arguments.callee(x - 1));
}
}
trace(factorial(5)); // 120
注意:
1.如果您在函数声明中使用 ...(rest) 参数,则不能使用 arguments 对象,而必须使用为参数声明的参数名来访问参数。
2.避免将 "arguments" 字符串作为参数名,因为它将遮蔽 arguments 对象。
========================
....(rest) 参数
ActionScript 3.0 中引入了一个称为 ...(rest) 参数的新参数声明。此参数可用来指定一个数
组参数以接受任意多个以逗号分隔的参数。此参数可以拥有保留字以外的任意名称。此参数
声明必须是最后一个指定的参数。使用此参数会使 arguments 对象变得不可用。尽管 ...(rest)
参数提供了与 arguments 数组和 arguments.length 属性相同的功能,但是它不提供与
arguments.callee 类似的功能。使用 ...(rest) 参数之前,应确保不需要使用
arguments.callee。
下面的示例使用 ...(rest) 参数 (而非 arguments 对象)来重写 traceArgArray() 函数:
function traceArgArray(... args):void
{
for (var i:uint = 0; i < args.length; i++)
{
trace(args[i]);
}
}
traceArgArray(1, 2, 3);
// 输出
// 1
// 2
// 3
...(rest) 参数还可与其它参数一起使用,前提是它是最后一个列出的参数。下面的示例修改
traceArgArray() 函数,以便它的第一个参数 x 是 int 类型,第二个参数使用 ...(rest) 参
数。输出结果将忽略第一个值,因为第一个参数不再属于由 ...(rest) 参数创建的数组。
function traceArgArray(x: int, ... args)
{
for (var i:uint = 0; i < args.length; i++)
{
trace(args[i]);
}
}
traceArgArray(1, 2, 3);
// 输出:
// 2
// 3
分享到:
相关推荐
在JavaScript编程语言中,`arguments`对象是一个非常重要的特性,特别是在处理函数参数时。它不是一个真正的数组,而是一个类数组对象,提供了访问函数调用时传递的所有参数的途径。无论函数定义了多少个形式参数...
"arguments-extended"就是一个这样的开源库,专为处理JavaScript中的`arguments`对象提供了一系列实用方法,旨在增强参数操作的灵活性和便利性。 `arguments`对象在JavaScript中是一个特殊的对象,它在函数内部可用...
twostar(1, 2, 3) # TypeError: twostar() takes 0 positional arguments but 3 were given ``` #### 四、综合应用 Python 允许在同一函数定义中同时使用这三种参数类型。这样可以创建功能更强大的函数,能够灵活...
理解Javascript函数形式参数与arguments 在JavaScript中,函数的形式参数和arguments之间存在着微妙的关系。为了深入理解这方面的知识,我们需要首先了解形式参数和实际参数的概念。形式参数指的是定义方法时所明确...
《A Rulebook for Arguments》(《论证的规则手册》)是由Anthony Weston所著的关于逻辑论证、辩论和批判性思维的指南书籍,此书自1987年首次出版以来,一直广受好评,并已更新至第三版。本书不仅适用于学术界,同样...
### JavaScript中的`arguments`对象详解 在JavaScript编程中,`arguments`对象是一个非常有用的特性,尤其是在处理函数调用时不确定参数数量的情况下。虽然它不是ECMAScript标准的一部分,但所有主流浏览器都支持这...
Rethinking the design of the Internet:The end to end arguments vs. the brave new world 作者:Marjory S. Blumenthal, Computer Science & Telecommunications Bd David D. Clark, M.I.T. Lab for Computer ...
在JavaScript编程语言中,函数是核心的组成部分,而`Arguments`对象则是JavaScript函数的一个独特特性。这个对象在函数调用时被自动创建,用于存储所有传递给函数的实际参数,无论这些参数是否在函数声明中定义。`...
在iOS开发中,Variadic Arguments(可变参数)是一种允许函数接受不同数量参数的技术。它在C、C++和Objective-C等语言中被广泛使用,包括iPhone应用开发。本实例将深入探讨如何在Objective-C中使用Variadic ...
Arguments对象是JavaScript中一个特殊的数据结构,主要用于在函数内部存储传递给函数的所有参数。无论函数定义了多少个参数,Arguments对象都会包含所有实际传递的参数。这篇深度研究主要探讨了Arguments对象的几个...
首先,理解"Function input arguments always precede output arguments"这一原则。在函数定义时,通常按照以下顺序安排参数:先输入参数,后输出参数。输入参数(也称为形参)是函数执行任务所需的外部数据,它们在...
在JavaScript编程语言中,`arguments`对象是一个非常重要的特性,尤其在处理函数参数时。它不是一个数组,而是一个类数组对象,提供了访问函数调用时传递的所有参数的途径,无论这些参数是否在函数定义中声明。`...
《端到端设计在系统架构中的应用》一文由J.H. Saltzer、D.P. Reed和D.D. Clark撰写,出自麻省理工学院计算机科学实验室。本文旨在探讨分布式计算机系统中功能模块放置的设计原则,重点阐述了一种被称为“端到端”...
JavaScript中的`arguments`对象是一个非常重要的特性,尤其在处理不确定数量的函数参数时。它不是一个真正的数组,但具有数组类似的行为,允许我们访问函数调用时传入的所有参数。在这个文档中,我们将深入探讨`...
标题“arguments-read-and-assignment.rar_assignment”提示我们这个压缩包可能包含有关JavaScript编程中的“arguments”对象和赋值操作的资料。在JavaScript中,“arguments”对象是一个特殊的对象,它在函数内部...
JavaScript中的隐含参数`arguments`, `callee`, 和 `caller`是函数内部的特殊变量,它们提供了关于函数调用的重要信息。下面将详细解释这三个参数的使用方法。 **arguments对象** `arguments`对象是一个非常有用的...
NULL 博文链接:https://gembler.iteye.com/blog/346242
在JavaScript中,arguments、caller、callee和apply是四个与函数调用相关的特性,它们在编写高级和复杂的函数逻辑时非常有用。下面将详细介绍这些概念及其用法。 1. **arguments对象** arguments对象是一个特殊...
《PyPI官网下载:flake8-force-keyword-arguments-1.0.2.tar.gz——Python库解析与使用指南》 Python作为一个强大且易用的编程语言,拥有丰富的第三方库资源,其中PyPI(Python Package Index)是官方的包管理器,...
### 端到端论证在系统设计中的应用 #### 引言 《端到端论证在系统设计中的应用》是J.H. Saltzer、D.P. Reed和D.D....该论文主要探讨了如何在分布式计算机系统的模块之间合理分配功能的问题,并提出了一种称为“端到端...