2013-10-28 3 views
6

Могу ли я передать переменное количество аргументов в функцию Javascript? У меня мало знаний в JS. Я хочу реализовать примерно следующее:Передача переменной Количество аргументов в функции javascript аргумент-список

function CalculateAB3(data, val1, val2, ...) 
    { 
     ... 
    } 
+0

да вы можете :-) Heres хороший учебник HTTP://www.w3schools.com/js/js_functions.asp – Hellgorithm

+0

Да и eww .... –

+3

Вы можете передать несколько аргументов, но лучший способ состоит в том, что вы можете передать объект или массив вместо – AmGates

ответ

15

Вы можете передать несколько параметров в функции и доступ к ним с помощью arguments переменной. Вот пример функции, которая возвращает сумму всех параметров, которые вы прошли в нем

var sum = function() { 
    var res = 0; 
    for (var i = 0; i < arguments.length; i++) { 
     res += parseInt(arguments[i]); 
    } 
    return res; 
} 

Вы можете назвать его следующим образом:

sum(1, 2, 3); // returns 6 
+0

Пожалуйста, покажите фактический прототип. он дает синтаксическую ошибку. –

+0

@RajeshPaul Я обновил объявление функции. попробуй еще раз. – aga

0

Да, вы можете это сделать. Используйте переменную «аргументы» как есть:

function test() { 
    for(var i=0; i<arguments.length; i++) { 
    console.log(arguments[i]) 
    } 
} 
3

Простой ответ на ваш вопрос, конечно, вы можете

Но лично я хотел бы передать объект, а не n числа параметров

Пример:

function CalculateAB3(obj) 
{ 
    var var1= obj.var1 || 0; //if obj.var1 is null, 0 will be set to var1 
    //rest of parameters 
} 

Здесь || является логическим оператором для получения дополнительной информации посетите http://codepb.com/null-coalescing-operator-in-javascript/

Is there a "null coalescing" operator in JavaScript? является хорошим прочитать

Смежные вопросы