| Пакет | Верхний уровень |
| Класс | 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
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства