Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Функция с неограниченным числом параметров (http://www.flasher.ru/forum/showthread.php?t=85938)

cassius 04.10.2006 04:29

Функция с неограниченным числом параметров
 
Как описать функцию, принимающую любое число параметров?
Например: Array.splice()

wvxvw 04.10.2006 05:43

Код:

function myFunction(){
trace(arguments[0]);
}
myFunction("hallo, my dear world!");

это?

cassius 04.10.2006 06:31

ну да... что-то типа того... но все как-то не явно

Dimchansky 04.10.2006 11:10

что там неявного-то?
Код:

function x(){
        for (i in arguments){
                trace(arguments[i]);
        }
}
x(1, 2, 5, 'fff');


cassius 05.10.2006 04:28

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

miramax 05.10.2006 04:31

Цитата:

Сообщение от cassius
В том, что в описании функции человек должен видеть, какие у нее параметры, чего здесь - нету.
Нужно хотя бы для того, чтобы обращаться к параметрам по именам... а не "эй ты, 5-я переменная".

Вообще-то логичнее передавать функции, в качестве аргумента - массив. В принципе arguments и есть тот самый массив. Но лучше всё таки свой массив создать

wvxvw 05.10.2006 05:16

2 cassius:
ну так выражайтесь понятнее... если вам нужно сразу определить принимаемые параметры, то это делается по следующему принципу:
Код:

function myFunction(MyBelovedName:String, TheNumberIHate:Number){
trace(typeof(MyBelovedName)+" "+MyBelovedName+", "+typeof(TheNumberIHate)+" "+TheNumberIHate);
}
// вызов:
myFunction("Monika", 13);

*Вот только это не совсем удобно в случаях когда разным объектам с похожим методом (который логичнее написать один на всех) нужно передавать разное количество параметров, в этом случае прийдется пользоваться массивом arguments, т.как компилятор откажется работать =)


Часовой пояс GMT +4, время: 15:48.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.