2013-08-17 2 views
0

함수 오버로드가 허용되지 않으므로 함수에 값을 전달하는 방법을 찾으려고합니다.자바 스크립트가 다른 함수에 배열 전달

PHP에서 나는 다음과 같은 방법으로 해결 :

function myMethod(value1) 
{ 
    // TO DO 
} 

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

자바 스크립트에서 나도 몰라 : 내가 방법을 오버로드 할 수

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

자바에서

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

myMethod(myAwesomeOptions);  

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

    switch(options) 
    .... 
} 

당신이 볼 수 있듯이 나는 함수에 대한 오버로드를 시도하고있다. 선택적 매개 변수를 사용하여 함수에 값을 전달하려면 어떻게해야합니까?

+1

가능한 중복 (http://stackoverflow.com/questions/456177/function-overloading-in-javascript -best-practices) – FakeRainBrigand

+0

값 사이를 전환하는 방법을 모르기 때문에 완전한 대답은 아닙니다. 배열을 전달하는 방법을 알고 있지만 배열을 처리하는 방법을 알고 있습니까? –

답변

0

자바 스크립트에서 인수 목적이있다. 예를 들어.

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; 
} 
} 
[자바 스크립트에 과부하 기능 - 모범 사례]의