Прикладной код

Переменная «Arguments»

Переменная «Arguments»

Переменная, которая содержит аргументы, переданные в функцию.

Описание

Переменная может обращаться к аргументу по номеру, начиная с 0. В этом случае переменая arguments содержит не объявленные, а реально переданные аргументы.

Кроме цифровых индексов, у arguments есть свойство length, как у массива. Благодаря этому можно вызывать функции с переменным числом параметров.

Комментарии

Несмотря на доступ по индексу и наличие свойства length, arguments не является массивом, т.е не принадлежит типу Array. Поэтому для arguments нельзя напрямую вызвать методы этого класса:

arguments.pop(); // ошибка !

Можно, однако, вызвать методы array через apply/call:

var args = Array.prototype.slice.call(arguments);

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

 function func() {
  arguments.callee.called++
 }
 func.called = 0;
 func() func() alert(func.called); // 2

Примеры

function func(a, b) {
 alert(arguments[0]);
 alert(arguments[1]);
 alert(arguments[2]);
}
func(1, 2, 3);

Сумма аргументов.

function sum() {
 var s = 0;
 for (var i = 0; i < arguments.length; i++) s += arguments[i];
 return s;
}