2013-08-17 6 views
0

Поскольку перегрузка функции не разрешена, я пытаюсь найти способ передать значения функции.Javascript передать массив другой функции

В PHP постановляю следующим образом:

// value2 and value3 are optional 
function myMethod(value1, value2 = '', value3 = '') 
{ 
    // TO DO 
} 

В Java Я могу перегрузить методы:

function myMethod(value1) 
{ 
    // TO DO 
} 

function myMethod(value1, value2) 
{ 
    // TO DO 
} 

In Javascript я не знаю:

var myAwesomeOptions = 
{ 
    'value1' : 'abc', 
    'value3' : 'def' 
} 

myMethod(myAwesomeOptions);  

function myMethod(options) 
{ 
    if (value1 == ????) ... 
    or 

    switch(options) 
    .... 
} 

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

+1

возможно дубликат [Функция перегрузки в Javascript - Наилучшая практика] (http://stackoverflow.com/questions/456177/function-overloading-in-javascript -best-practices) – FakeRainBrigand

+0

Это не полный ответ, потому что я не знаю, как переключаться между значениями. Я знаю, как передать массив, но как обращаться с ними? –

ответ

0

Там же объект Аргументом в JavaScript. Например.

function testme() 
{ 
    var first_name=arguments[0] || "John"; 
    var last_name=arguments[1] || "Doe"; 
    alert(first_name); 
    alert(last_name); 
} 

testme(); 

testme("Jane"); 

Таким образом, вы можете использовать объект Argument для перегрузки функций. Конечно, вы также можете передать массив или коллекции.

0

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

function myMethod() { 
switch (arguments.length) { 
    case 0: 
    //TO DO 
    break; 
    case 1: 
    var value1 = arguments[0]; 
    //TO DO 
    break; 
} 
} 
Смежные вопросы