passerer argumenter som separate parametre i js

stemmer
1

I javascript hvis jeg har noen funksjon jeg kan bruke argumentene objektet for å se på hvor mange parametere ble vedtatt i. Er det en måte å ringe en annen funksjon og passere disse argumentene som om de er bare vanlige separate parametere?

noe sånt som dette:

function f()
{
g(arguments);
}

function g(a, b, c)
{
alert(a+b+c);
}

Så i dette tilfellet hvis jeg ringte f (1,2,3) jeg ville få et varsel på 6. Bare for å være klar, jeg prøver ikke å passere et variabelt antall argumenter, bare en måte å passere argumentene objektet som normale separate parametre til andre funksjoner (muligens innfødte javascript funksjoner)

Publisert på 12/07/2009 klokken 03:25
kilden bruker
På andre språk...                            


2 svar

stemmer
8

function f() 
{
    g.apply(this,arguments);
}

se https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/apply for mer detaljer om denne teknikken

også være oppmerksom på at den første parameteren definerer sammenhengen som funksjon vil kjøre. passerer null for første argumentet vil bare bruke global sammenheng (vindu).

Svarte 12/07/2009 kl. 03:30
kilden bruker

stemmer
-1

En annen måte ville være å bruke den onde eval ();

Jeg anbefaler ikke dette selv.

function f()
{
    var eval_string = "g(";
    for(var i=0; i<arguments.length; i++)
        eval_string += arguments[i] + ", ";  // if arguments[i] is an integer

    eval_string += ");"

    eval(eval_string);
}
Svarte 12/07/2009 kl. 03:32
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more