Domanda Domanda sui parametri della funzione Javascript


Stavo cercando di scrivere qualche funzione javascript e me ne sono reso conto

function testFunction(input_1, input_2, input_3) {
       alert("alert");
}

tuttavia quando chiamo la funzione in questo modo:

<input type="button" value="click" onclick="testFunction("1", "2")">

perché funzionerà ancora anche con solo due parametri?


29
2018-06-22 20:41


origine


risposte:


Puoi chiamare una funzione Javascript con un numero qualsiasi di parametri, indipendentemente dalla definizione della funzione.

I parametri con nome che non sono stati passati saranno undefined.

È possibile accedere a parametri aggiuntivi tramite arguments oggetto simile ad un array.


30
2018-06-22 20:43



In realtà non importa quanti parametri stai fornendo. la funzione interpreta e crea il arguments oggetto (che funge da matrice di parametri). Ecco un esempio:

function sum(){
   if(arguments.length === 0)
       return 0;
   if(arguments.length === 1)
       return arguments[0];
   return arguments[0] + sum.apply(this, [].slice.call(arguments, 1));
}

Non è la soluzione più efficiente, ma fornisce un breve picco su come le funzioni possono gestire gli argomenti.


4
2018-06-22 20:44



Perché javascript tratta i tuoi parametri come una matrice; se non si va mai oltre il secondo elemento, non si accorge mai che manca un argomento.


2
2018-06-22 20:43



il terzo parametro può essere facoltativo e avrà un valore predefinito nullo. Se vuoi esplicitamente richiedere un parametro, allora questa è una storia diversa


0
2018-06-22 20:43



Perché i parametri sono opzionali

Alcune letture: http://www.tipstrs.com/tip/354/Using-optional-parameters-in-Javascript-functions


0
2018-06-22 20:43



Javascript è un linguaggio molto dinamico e assumerà un valore "non definito" per ogni parametro che non ha passato un valore.


0
2018-06-22 20:43