Javascript 中的arguments 学习

arguments是当前正在执行的function的一个参数,它保存了函数当前调用的参数。

使用方法:function.arguments[i]。

其中function.是可选项,是当前正在执行的function的名称。

arguments不能够创建,是函数自身的参数,只有当函数开始执行是才能使用。

虽然arguments的使用方法,很像数组,但是它并不是数组。

下面,用例子来进行演示:

function argumentsTest (a,b) {
        alert(typeof arguments);
}
argumentsTest(1,2);

可以看到,这是浏览器窗口弹出的,arguments的类型是object。

function argumentsTest (a,b) {
        // alert(typeof arguments);
        alert(arguments.length);
}
argumentsTest(1,2);

弹出结果:

function argumentsTest (a,b) {
        // alert(typeof arguments);
        // alert(arguments.length);
        alert(arguments[1]);
}
argumentsTest(1,2);

弹出结果:

注意下面的代码:

function argumentsTest (a,b) {
    // alert(typeof arguments);
    alert(arguments.length);
    // alert(arguments[1]);
}
argumentsTest(1,2,3,4);

弹出结果:

弹出的结果是4。

下面是,callee方法,返回的是正在被执行的function对象。

function argumentsTest (a,b) {
    // alert(typeof arguments);
    // alert(arguments.length);
    // alert(arguments[1]);
    alert(arguments.callee);
    // alert(arguments.callee.length);
}
argumentsTest(1,2,3,4);

弹出结果:

下面是关键,arguments.callee.length返回的是多少呢?

function argumentsTest (a,b) {
    // alert(typeof arguments);
    // alert(arguments.length);
    // alert(arguments[1]);
    //alert(arguments.callee);
    alert(arguments.callee.length);
}
argumentsTest(1,2,3,4);

弹出结果:

可知,arguments.length返回的是实参的长度,为4 ;而arguments.callee.length返回的是形参的长度,仅为2.


2013.8.30

今天又遇到arguments,发现还有几点掌握的是特别清楚。

1.首先,arguments是函数对象的内置参数。它是函数/方法在执行过程中,由传入的参数所组成的一个对象,系统内置的,可以调用。和函数声明时的参数无关(函数声明时,即使没有声明参数也不影响arguments的使用)。

2.可以根据arguments来模拟重载。具体的可以看这里:

http://www.w3school.com.cn/js/pro_js_functions_arguments_object.asp

时间: 2024-08-28 14:54:15

Javascript 中的arguments 学习的相关文章

JavaScript中使用arguments来实现不定参数的计算

在JavaScript中可以使用arguments对象来实现不定参数 例如:不定参数的相加实现 add(1,2)      ==>3 add(1,2,3)   ==>6 var add = function(){ var total = 0; for(var index = 0;index < arguments.length; index++){ total = total + arguments[index]; } return total; } alert("1加2的值是

JavaScript中通过arguments对象实现对象的重载

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* *1.js 中不存在函数的重载 2.js函数定义时候的形参个数,和执行时候时,传递的实参的个数可以不一样. 3.js执行时候,会将真实的参数,封

JavaScript中的arguments,callee,caller,call,appy

<script language="JavaScript">/* * 演示arguments的用法,如何获取实参数和形数数 */function argTest(a,b,c,d){    var numargs = arguments.length;     // 获取被传递参数的数值.    var expargs = argTest.length;       // 获取期望参数的数值.    alert("实参数目为:"+numargs)    a

【拾遗】理解Javascript中的Arguments

前言 最近在看JavaScript相关的知识点,看到了老外的一本Javascript For Web Developers,遇到了一个知识盲点,觉得老外写的很明白很透彻,记录下来加深印象,下面是我摘出来的一些片段,片段下有对应的解释,希望也能帮助其他人扫除这个盲点.如有翻译的不得体的地方还请在评论区指出,不胜感激. 理解Javascript中的Arguments Function arguments in ECMAScript don’t behave in the same way as fu

JavaScript中的arguments,callee,caller

在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments: arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n]参数function:选项.当前正在执行的 Function 对象的名字. n :选项.要传递给 Function 对象的从0开始的参数值索引.说明Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象.Arguments是一个类似数组但不是数组的对象,说它类似数组是

javascript中的正则表达式学习

一.前言 关于正则表达式自身的语法这里不做过多介绍(详情可参见http://www.php100.com/manual/unze.html),这里仅仅解释javascript中和正则表达式相关的几个方法的使用. 二.javascript中的RegExp对象 在javascript中,有两种方法可以构建正则: 正则表达式字面量 RegExp构造器 RegExp对象有以下属性: global:如果标识g,则为true ignoreCase:如果标识i被使用,则为true lastIndex:下一次e

Javascript中的arguments数组对象

(1)在函数体中,可以直接使用arguments数组对象,这个数组的元素是调用此函数时实际传入的所有参数 (2)其实在调用函数时,传入的参数个数可以和声明函数时不同,传入不同类型的参数也会导致结果不符合预期 (3)由于js的函数的返回值和参数个数以及参数类型都很灵活,我们在调用的时候应该确保传入函数期望的参数 示例 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.

JavaScript中 Promise的学习以及使用

今天一个哥们发过来一段js代码,没看懂,就顺便学习了一下,代码如下 Promise.resolve('zhangkai').then(value => {console.log(value)}) 经过搜索,才知道是Promise的应用,于是就做一下笔记,整理一下,以及项目中可以派上的用场. 什么是Promise对象 Promise对象是CommonJS工作组为异步编程提供的统一接口,是ECMAScript6中提供了对Promise的原生支持,Promise就是在未来发生的事情,使用Promise

JavaScript中NODE操作学习总结

Node: 1.在 HTML DOM (文档对象模型)中,每个部分都是节点:    文档本身是文档节点     所有 HTML 元素是元素节点     所有 HTML 属性是属性节点     HTML 元素内的文本是文本节点     注释是注释节点  2.节点属性:    element.childNodes 返回元素子节点的 NodeList     element.className 设置或返回元素的 class 属性     element.firstChild 返回元素的首个子节点