arguments对象

  • 函数内部的一个对象,当函数调用时,系统会将所有传入的实参,依次存入这个数组对象中

注意: 不管有没有形参,实参都会被传入该对象

arguments.length:表示传入实参的个数;
arguments.callee: 指向函数本身

arguments是一个伪数组对象. 它表示在函数调用的过程中传入的所有参数的集合。在函数调用过程中不规定参数的个数与类型, 可以使得函数调用变得非常灵活性。

JavaScript中的函数并没有规定必须如何传参:

  1. 定义函数的时候不写参数, 一样可以调用时传递参数
  2. 定义的时候写了参数, 调用的时候可以不传参
  3. 定义的时候写了一个参数, 调用的时候可以随意的传递多个而参数

在代码设计中, 如果需要函数带有任意个参数的时候, 一般就不带任何参数, 所有的参数利用arguments对象来获取. 一般的函数定义语法, 可以写成:

function foo (/* ... */) {}

练习:

利用 Function 创建一个函数, 要求允许函数调用时传入任意个数参数, 并且函数返回这些数字中最大的数字.

function foo () {
    // 所有的参数都在 arguments 中. 将其当做数组使用
    // 问题已转换成在有一个数组中求最大值
    var args = arguments;
    var max = args[ 0 ];
    for ( var i = 1; i < args.length; i++ ) {
        if ( max < args[ i ] ) {
                max = args[ i ];
        }
    }
    return max;
}

results matching ""

    No results matching ""