Справочник Javascript
|
argumentsПеременная, доступная внутри функции и содержащая аргументы и ссылку на саму функцию.
Описание, примеры
Локальная переменная arguments доступна внутри функций.
Вы можете обращаться к аргументом по номеру, начиная от 0. При этом arguments содержит не объявленные, а реально переданные аргументы.
Следующий пример выведет реально переданные три аргумента, несмотря на то, что в функции их всего два.
Пример:
Выделить все
function func(a,b) {
alert(arguments[0])
alert(arguments[1])
alert(arguments[2])
}
func(1,2,3,4)
Кроме цифровых индексов, у arguments есть свойство length , такое же как у массива.
Благодаря этому можно вызывать функции с переменным числом параметров. В следующем примере функция возвращает сумму всех аргументов.
Пример: сумма аргументов
Выделить все
function sum() {
var s = 0
for(var i=0; i<arguments.length; i++) s += arguments[i]
return s
}
Несмотря на доступ по индексу и наличие свойства length , arguments не является массивом, т.е не принадлежит типу Array.
Поэтому для arguments нельзя напрямую вызвать методы этого класса:
arguments.pop() // ошибка !
Можно, однако, вызвать методы Array через apply/call:
var args = Array.prototype.slice.call(arguments)
Ссылка на функцию arguments.callee
Кроме аргументов, arguments содержит ссылку на выполняющуюся функцию.
Ее можно использовать для задания и чтения статических свойств.
В следующем примере для этого используется статическое свойство called .
Пример: подсчет количества выполнений
Выделить все
function func() {
arguments.callee.called++
}
func.called = 0;
func()
func()
alert(func.called) // 2
|
Это интересно
70% интернет пользователей признались, что променяли привычный просмотр телевизора на Интернет.
|