Oggetto arguments ECMAScript
- Pagina precedente Panoramica della funzione
- Pagina successiva Oggetto Function
Oggetto arguments
Nel codice della funzione, gli sviluppatori utilizzano l'oggetto speciale argumentsNon è necessario specificare chiaramente il nome dei parametrie puoi accedervi.
Ad esempio, nel metodo sayHi(), il primo parametro è message. Puoi accedere a questo valore anche tramite arguments[0], ovvero il valore del primo parametro (il primo parametro si trova nella posizione 0, il secondo nella posizione 1, ecc.).
Dunque, non è necessario specificare chiaramente il nome dei parametri per riscrivere la funzione:
function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); }
Verifica del numero di parametri
È anche possibile utilizzare l'oggetto arguments per determinare il numero di parametri della funzione, utilizzando l'attributo arguments.length.
Il seguente codice mostrerà il numero di parametri utilizzati in ogni chiamata della funzione:
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
Questo pezzo di codice mostrerà in sequenza "2", "0" e "1".
Nota:A differenza di altri linguaggi di programmazione, ECMAScript non verifica se il numero di parametri passati alla funzione è uguale al numero di parametri definiti nella funzione. Tutte le funzioni definite dallo sviluppatore possono accettare un numero arbitrario di parametri (secondo la documentazione di Netscape, fino a 255), senza generare alcun errore. Qualsiasi parametro mancante verrà passato alla funzione come undefined, e i parametri in eccesso saranno ignorati.
Simulazione surrogato di funzione
Utilizzando l'oggetto arguments è possibile determinare il numero di parametri passati alla funzione, il che consente di simulare il surrogato di funzione:
function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 5); } else if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); // Output: "15" doAdd(40, 20); // Output: "60"
Quando c'è solo un parametro, la funzione doAdd() aggiunge 5 al parametro. Se ci sono due parametri, sommerà i due parametri e restituirà la loro somma. Pertanto, doAdd(10) restituirà "15", mentre doAdd(40, 20) restituirà "60".
Non è così buono come il surrogato, ma è sufficiente per superare questo limite ECMAScript.
- Pagina precedente Panoramica della funzione
- Pagina successiva Oggetto Function