2009-11-06 5 views

ответ

1

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

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

0

arguments является собственностью function объектов. См. Using the arguments object или Property: Function: arguments для получения дополнительной информации.

Стоит отметить, что arguments не является «реальным» массивом, документация называет его «подобранным массивом объектом» - больше в Turning JavaScript's arguments object into an array.

3

подробное объяснение о том, когда и как создается arguments объект:

От ECMAScript specification:

10.1.8 Объект аргументов

Когда управление входит в контекст выполнения кода функции , создается объект аргументов и , инициализированный следующим образом:

  • Значение внутреннего свойства [[Prototype]] объекта аргументов является исходным объектом прототипа объекта, который является начальным значением Object.prototype (см. 15.2.3.1).

  • Недвижимость создана с именем callee и атрибутами собственности { DontEnum }. Начальным значением этого свойства является выполняемый объект Function. Это позволяет анонимным функциям быть рекурсивными.

  • Недвижимость создается с именем length и атрибутами собственности { DontEnum }. Начальным значением этого свойства является количество фактических значений параметров, предоставляемых вызывающим абонентом.

  • Для каждого неотрицательного целого числа, arg, меньше значения length собственности, свойство создается с именем ToString(arg) и свойства атрибутов { DontEnum }. Начальным значением этого свойства является значение соответствующего фактического параметра, предоставленного вызывающим абонентом. Первое фактическое значение параметра соответствует arg = 0, второе - arg = 1 и т. Д.В случае, когда arg меньше количества формальных параметров для объекта Function, это свойство разделяет его значение с соответствующим свойством объекта активации. Это означает, что изменение этого свойства изменяет соответствующее свойство объекта активации и наоборот.

Смежные вопросы