Подтвердить что ты не робот

Как создавать функции с переменными аргументами в javascript?

Я хочу создать функцию в javascript с переменным количеством аргументов. Следующий пример - это то, как я хочу вызвать эту функцию:

myFunction(1,2);
myFunction(1,2,3);
myFunction(1,2,3,4);
myFunction(1,2,3,4,5);
myFunction(1,2,3,4,5,6);

Кто-нибудь знает, как определить эту функцию?

4b9b3361

Ответ 1

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

function myFunction() {
  for (var i = 0; i < arguments.length; i++)
    alert(arguments[i]);
}

myFunction(1, 2, "three");

>>1
>>2
>>three

Или, если вы действительно проходите в наборе семантически связанных чисел, вы можете использовать массив;

function myFunction(arr) { ... }
result = myFunction([1,2,3]);

Ответ 2

Последнее обновление

Параметры останова поддерживаются во всех новых браузерах. Подробнее читайте здесь

Синтаксис остальных параметров позволяет нам представлять неопределенное количество аргументов в виде массива, которые вы также можете передать другим функциям.

function myFunction(...data){
  console.log(...data);
  myOtherFunction(...data);
}

myFunction(1,2,3);     //logs 1,2,3

myFunction([1,2,3]);   //logs [1,2,3]

Ответ 3

Используйте переменную 'arguments' следующим образом:

function myFunction() {
    alert(arguments.length + ' arguments');
    for( var i = 0; i < arguments.length; i++ ) {
        alert(arguments[i]);
    }
 }

Вызовите методы, как вы это делали раньше

myFunction(1,2);
myFunction(1,2,3,4,5,6);

Ответ 5

Если аргумент отсутствует, используйте значение по умолчанию. Как это...

function accident() {
    //Mandatory Arguments
    var driver = arguments[0];
    var condition = arguments[1]

    //Optional Arguments
    var blame_on = (arguments[2]) ? arguments[2] : "Irresponsible tree" ;
}

accident("Me","Drunk");

Ответ 6

В качестве дополнения: вы можете назначать значения для неназначенных параметров функции, как в (german wiki)

arguments[0] = 5;