8c1dea14

Использование массива arguments


Аргументы функции обслуживаются в массиве. Внутри функции вы можете адресовать передаваемые ей аргументы таким образом:

arguments[i]

где i это порядковый номер аргумента, начиная с 0. Итак, первым аргументом, передаваемым функции, будет arguments[0]. Общее количество аргументов обозначается свойством arguments.length.


Используя массив arguments, Вы можете вызывать функцию с бòльшим количеством аргументов, чем она принимает по формальному объявлению. Это часто используется в тех случаях, когда Вы заранее не знаете, сколько аргументов будет передано функции. Вы можете использовать arguments.length для определения реального количества аргументов, передаваемых функции, и затем просматривать каждый аргумент в массиве arguments.


Например, рассмотрим функцию, объединяющую несколько строк. Единственным формальным аргументом функции является строка, специфицирующая символ-разделитель объединяемых строк. Функция определяется так:

function myConcat(separator) {

var result="" // initialize list

   // iterate through arguments

   for (var i=1; i<arguments.length; i++) {

      result += arguments[i] + separator

   }

   return result

}

Вы можете передать этой функции любое количество аргументов, и она создаст список, используя каждый аргумент как элемент этого списка.

// возвращает "red, orange, blue, "

myConcat(", ","red","orange","blue")

// возвращает "elephant; giraffe; lion; cheetah; "

myConcat("; ","elephant","giraffe","lion", "cheetah")

// возвращает "sage. basil. oregano. pepper. parsley. "

myConcat(". ","sage","basil","oregano", "pepper", "parsley")

См. объект Function в книге


JavaScript 1.3 и предыдущие версии.

Массив arguments является свойством объекта Function, и ему может предшествовать имя функции таким образом:

functionName.arguments[i]





Содержание раздела