Главная / Action Script 3
ПакетВерхний уровень
Классpublic class arguments
Наследованиеarguments Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 8

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

Аргументы сохраняются как элементы массива: доступ к первому из них выполняется по имени arguments[0], ко второму — по имени arguments[1] и т.д. Свойство arguments.length означает количество аргументов, переданных функции. Количество переданных аргументов может отличаться от количества, объявленного функцией.

В отличие от предыдущих версий ActionScript в ActionScript 3.0 нет свойства arguments.caller. Чтобы получить ссылку на функцию, которая названа текущей, необходимо передать ссылку на эту функцию в виде аргумента. Случай применения этого метода см. в примере, относящемся к свойству arguments.callee.

ActionScript 3.0 включает новое ключевое слово ...(rest), которое рекомендуется использовать вместо класса arguments.

Посмотреть примеры

См. также

...(rest)
Функция


Общедоступные свойства
 СвойствоОпределено
  callee : Function
Ссылка на функцию, выполняемую в настоящий момент.
arguments
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  length : Number
Число аргументов, переданных функции.
arguments
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
calleeсвойство
public var callee:Function

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 8

Ссылка на функцию, выполняемую в настоящий момент.


Пример
В следующем коде показано, как получить ссылку на функцию, которая вызывает функцию secondFunction(). Функции firstFunction() присвоен логический аргумент true, указывающий на то, что secondFunction() успешно вызывает firstFunction(), и предотвращающий появление бесконечного цикла поочередного вызова функциями друг друга.

Поскольку параметру callSecond присвоено значение true, firstFunction() вызывает secondFunction() и передает себе ссылку в качестве единственного аргумента. Функция secondFunction() получает аргумент и сохраняет его с помощью параметра caller, который относится к типу данных "Функция". В secondFunction() используется параметр caller для вызова функции firstFunction, но на этот раз аргументу callSecond присваивается значение false.

Когда в ходе выполнения возвращается firstFunction(), выполняется инструкция trace(), поскольку callSecond имеет значение false.

  package {
    import flash.display.Sprite;
    
    public class ArgumentsExample extends Sprite {
        private var count:int = 1;
        
        public function ArgumentsExample() {
            firstFunction(true);
        }

        public function firstFunction(callSecond:Boolean) {
            trace(count + ": firstFunction");
            if(callSecond) {
                secondFunction(arguments.callee);
            }
            else {
                trace("CALLS STOPPED");
            }
        }

        public function secondFunction(caller:Function) {
            trace(count + ": secondFunction\n");
            count++;
            caller(false);
        }        
    }
} 
lengthсвойство 
public var length:Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 8

Число аргументов, переданных функции. Оно может быть выше или ниже объявленного функцией.

Примеры Как пользоваться примерами
ArgumentsExample.as

В следующем примере показано использование различных свойств arguments (например, callee и length).
package {
    import flash.display.Sprite;
    
    public class ArgumentsExample extends Sprite {
        public function ArgumentsExample() {
                println("Hello World");
        }
        
        public function println(str:String):void {
            trace(arguments.callee == this.println); // true
            trace(arguments.length);                 // 1
            trace(arguments[0]);                     // Hello World
            trace(str);                                // Hello World
        }
    }
}