Пакет | Верхний уровень |
Класс | public class arguments |
Наследование | arguments Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Аргументы сохраняются как элементы массива: доступ к первому из них выполняется по имени arguments[0]
, ко второму – по имени arguments[1]
и т.д. Свойство arguments.length
означает количество аргументов, переданных функции. Количество переданных аргументов может отличаться от количества, объявленного функцией.
В отличие от предыдущих версий ActionScript в ActionScript 3.0 нет свойства arguments.caller
. Чтобы получить ссылку на функцию, которая названа текущей, необходимо передать ссылку на эту функцию в виде аргумента. Случай применения этого метода см. в примере, относящемся к свойству arguments.callee
.
ActionScript 3.0 включает новое ключевое слово ...(rest)
, которое рекомендуется использовать вместо класса arguments.
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
callee : Function
Ссылка на функцию, выполняемую в настоящий момент. | arguments | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
length : Number
Число аргументов, переданных функции. | arguments |
callee | свойство |
public var callee:Function
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ссылка на функцию, выполняемую в настоящий момент.
Пример ( Использование этого примера )
secondFunction()
. Функции firstFunction()
присвоен логический аргумент true
, указывающий на то, что secondFunction()
успешно вызывает firstFunction()
, и предотвращающий появление бесконечного цикла поочередного вызова функциями друг друга.
Поскольку параметру callSecond
присвоено значение true
, firstFunction()
вызывает secondFunction()
и передает себе ссылку в качестве единственного аргумента. Функция secondFunction()
получает аргумент и сохраняет его с помощью параметра caller
, который относится к типу данных Function. В 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Число аргументов, переданных функции. Оно может быть выше или ниже объявленного функцией.
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 } } }
Tue Jun 12 2018, 11:34 AM Z