Ядро JavaScript 1.5. Справочник


Arguments


Массив из аргументов, передаваемых функции.

Локальная переменная из

Все объекты функции.

Свойство из

(не рекомендуется).

Реализовано в

JavaScript 1.1, NES 2.0

JavaScript 1.2: добавлено свойство .

JavaScript 1.3: не рекомендуется свойство ; удалена поддержка имён аргументов и и мён локальных переменных как свойств массива arguments.

JavaScript 1.4: не рекомендуются arguments, и как свойства Function; arguments

остался как локальная переменная функции, и и - как свойства этой переменной.

Версия ECMA

ECMA-262


Описание

Массив arguments это локальная переменная, доступная внутри всех объектов функции; arguments

больше не используется в качестве свойства Function.

 

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

 

arguments[0]

arguments[1]

arguments[2]

 

Массив arguments доступен только внутри тела функции. Попытка получить доступ к массиву arguments

за пределами объявления функции приводит к ошибке.

 

Вы можете использовать массив arguments

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

 

Массив arguments имеет следующие свойства:

 

Свойство

Описание

Специфицирует тело выполняемой в данный момент функции.

Специфицирует имя функции, которая вызвала выполняемую в данный момент функцию. (Не рекомендуется использовать).

Специфицирует количество аргументов, передаваемых функции.


Обратная Совместимость

JavaScript 1.3 и более ранние версии.

Помимо использования в качестве локальной переменной, массив arguments

является также свойством объекта Function и может иметь перед собой имя функции. Например, если функции myFunc

передаются три аргумента с именами arg1, arg2 и arg3, Вы можете обращаться к этим аргументам так:

myFunc.arguments[0]

myFunc.arguments[1]

myFunc.arguments[2]

 

JavaScript 1.1 и 1.2.

Следующие возможности из JavaScript 1.1 и JavaScript 1.2 были удалены:

  • Каждая локальная переменная функции является свойством массива arguments. Например, если функция myFunc

    имеет локальную переменную с именем myLocalVar, Вы можете обратиться к этой переменной: arguments.myLocalVar.

  • Каждый формальный аргумент функции является свойством массива arguments. Например, если функция myFunc имеет два аргумента с именами arg1 и arg2, Вы можете обратиться к этим аргументам: arguments.arg1 и arguments.arg2. (Вы можете также обратиться к ним arguments[0] и arguments[1].)


  • Примеры

    Пример 1.

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

    Function myConcat(separator) {

       result="" // инициализация списка

       // 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")

     

    Пример 2.

    Здесь определена функция, создающая HTML-списки. Единственным формальным аргументом этой функции является строка, которая будет "U", если список неупорядоченный (bulleted), или "O", если это упорядоченный/нумерованный список. Функция определяется так:

     

    Function list(type) {

       document.write("<" + type + "L>") // начало списка

       // итерация по аргументам

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

          document.write("<LI>" + arguments[i])

       }

       document.write("</" + type + "L>") // конец списка

    }

     

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

    list("U", "One", "Two", "Three")

     

    даст на выходе:

     

    <UL>

    <LI>One

    <LI>Two

    <LI>Three

    </UL>

     

    В серверном JavaScript Вы можете отобразить тот же вывод путём вызова функции вместо document.write.

     





    - Начало -  - Назад -  - Вперед -



    Книжный магазин