Parámetros de funciones externas e internas en JavaScript
Hagamos que tanto la función externa como la interna acepten parámetros:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Pasemos el parámetro de la función externa a la llamada de la función interna:
function test(num) {
function func(localNum) {
console.log(localNum); // mostrará 1
}
func(num); //!! pasamos el parámetro
}
test(1); // pasamos un número como parámetro
Resulta que en la función interna estará
disponible la variable num como una variable externa
de la función padre y la variable
localNum, que es una variable local
de la función interna.
Ambas variables tendrán los mismos valores:
function test(num) {
function func(localNum) {
console.log(num); // mostrará 1
console.log(localNum); // mostrará 1
}
func(num);
}
test(1);
La diferencia entre ellas será la siguiente: si
en la función interna cambiamos la variable
num - también cambiará en la función externa:
function test(num) {
function func(localNum) {
num = 2; // cambiamos la variable num
}
func(num); // pasamos el parámetro
console.log(num); // mostrará 2
}
test(1); // pasamos un número como parámetro
Y la variable localNum será local.
Sus cambios no conducirán a ningún
cambio en la función externa. Y la propia
variable localNum no será visible
fuera de la función interna:
function test(num) {
function func(localNum) {
localNum = 2; // cambiamos la variable num
}
func(num); // pasamos el parámetro
}
test(1); // pasamos un número como parámetro
Determine, sin ejecutar el código, qué se mostrará en la consola:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Determine, sin ejecutar el código, qué se mostrará en la consola:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Determine, sin ejecutar el código, qué se mostrará en la consola:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Determine, sin ejecutar el código, qué se mostrará en la consola:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Determine, sin ejecutar el código, qué se mostrará en la consola:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Determine, sin ejecutar el código, qué se mostrará en la consola:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);