Форум hotibo.ru

Сайты - по стандартам, но не стандартные сайты!





#1 12.01.2010 15:27

Tracktor
Новичок
Зарегистрирован: 11.01.2010
Сообщений: 4

Вопросы про функции с переменным числом аргументов

Простой пример:

function test()
{
    for (var i=0; i        alert(arguments[i]);
}
test(1,2,3);

Теперь у меня 2 вопроса:

1. arguments очень похож на массив (Array), но таковым не является. Например нельзя сделать:
"arguments.slice(1)"
Можно ли его как-то "правильно" в Array переделать? Или только вот так:

args_arr = new Array();
for (var i=0; i    args_arr[i] = arguments[i]

2. Как "правильно" написать функцию с переменным числом аргументов, которая вызывает другую функцию и передает ей все пришедшие аргументы.
Я делаю вот так:

function test2()
{
    var a = new Array();
    for (var i=0; i    {
        a[i] = ’arguments[’ + i.toString() + ’]’;
    }
    var s = ’test(’ + a.join(’,’) + ’)’;
    return eval(s);
}

Нет ли в javascript какого-нибудь специального "правильного" синтаксиса для такого случая?

Отредактированно Tracktor (12.01.2010 15:28)

Нет на форуме

 

#2 24.01.2010 15:09

AKS
Профессионал
Зарегистрирован: 25.12.2009
Сообщений: 237
Вебсайт

Re: Вопросы про функции с переменным числом аргументов

Tracktor
У объекта Function есть метод apply. Найди в сети подробности...

Отредактированно AndrewS (24.01.2010 15:10)

Нет на форуме

 

Board footer