⊗jsPmFNOIP 250 of 505 menu

Parametri delle funzioni esterne e interne in JavaScript

Facciamo in modo che sia la funzione esterna che quella interna accettino parametri:

function test(num) { function func(localNum) { console.log(localNum); } }

Passiamo il parametro della funzione esterna alla chiamata della funzione interna:

function test(num) { function func(localNum) { console.log(localNum); // visualizzerà 1 } func(num); //!! passiamo il parametro } test(1); // passiamo un numero come parametro

Risulta che nella funzione interna sarà disponibile la variabile num come variabile esterna dalla funzione genitore e la variabile localNum, che è una variabile locale della funzione interna.

Entrambe queste variabili avranno gli stessi valori:

function test(num) { function func(localNum) { console.log(num); // visualizzerà 1 console.log(localNum); // visualizzerà 1 } func(num); } test(1);

La differenza tra loro sarà la seguente: se all'interno della funzione interna si modifica la variabile num - essa cambierà anche nella funzione esterna:

function test(num) { function func(localNum) { num = 2; // modifichiamo la variabile num } func(num); // passiamo il parametro console.log(num); // visualizzerà 2 } test(1); // passiamo un numero come parametro

Mentre la variabile localNum sarà locale. Le sue modifiche non porteranno ad alcun cambiamento nella funzione esterna. E inoltre la variabile localNum stessa non sarà visibile dall'esterno della funzione interna:

function test(num) { function func(localNum) { localNum = 2; // modifichiamo la variabile num } func(num); // passiamo il parametro } test(1); // passiamo un numero come parametro

Determinate, senza eseguire il codice, cosa verrà visualizzato in console:

function test(num) { function func(localNum) { console.log(localNum); } func(num); } test(1);

Determinate, senza eseguire il codice, cosa verrà visualizzato in console:

function test(num) { function func(localNum) { console.log(localNum); } func(num + 1); } test(1);

Determinate, senza eseguire il codice, cosa verrà visualizzato in console:

function test(num) { function func(localNum) { console.log(num); } func(num + 1); } test(1);

Determinate, senza eseguire il codice, cosa verrà visualizzato in console:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(num); } test(1);

Determinate, senza eseguire il codice, cosa verrà visualizzato in console:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(localNum); } test(1);

Determinate, senza eseguire il codice, cosa verrà visualizzato in console:

function test(num) { function func(localNum) { num = 2; } func(num); console.log(num); } test(1);
ptkatrdaid