2011-07-24 14 views
7

Tengo dos función a() y B(), ambas son funciones variadic, y mucho decir cuando llamada a la función a() así:¿Llamar a una función variadic dentro de una función variadic en Javascript?

a(arg0, arg1, arg2, arg3, ...., argn); 

entonces la función B() se llama así en el interior un(), pero sin el primer argumento "arg0" en la lista de argumentos de un():

b(arg1, arg2, arg3, ...., argn); 

¿hay alguna forma para ello?

+1

relacionadas: http://stackoverflow.com/questions/960866/converting-the-arguments-object-to-an-array-in-javascript –

Respuesta

20

Cada JavaScript function es realmente solo otro "objeto" (objeto en el sentido de JavaScript), y viene con un método apply (ver Mozilla's documentation). Usted por lo tanto puede hacer algo como esto ....

b = function(some, parameter, list) { ... } 

a = function(some, longer, parameter, list) 
{ 
    // ... Do some work... 

    // Convert the arguments object into an array, throwing away the first element 
    var args = Array.prototype.slice.call(arguments, 1); 

    // Call b with the remaining arguments and current "this" 
    b.apply(this, args); 
} 
+0

fresca , Acabo de hacer una prueba rápida y funciona bien. ¡Gracias por tu ayuda! – Teiv

Cuestiones relacionadas