Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
pasar datos en función anidada

soy un principiante en javascript y traté de aprender sobre la función que llama dentro de una función que redefine el valor de una variable. aquí está el código

 var a; function app2(a) { var a = 8; return a } function app(a) { var a = 7; app2(a) return a } console.log(app(a));

cuando ejecuto el código, todavía muestra 7 como salida. Pensé que serían 8 porque llamé a la función app2 en la función de la app . ¿Por qué el valor no cambia a 8? y ¿qué debo hacer para actualizar el valor de la variable dentro de la función anidada? gracias de antemano

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

1) Solo puede obtener 8 si está tomando el valor de app2 y usándolo dentro de la app .

Las variables declaradas con la palabra clave var tienen un alcance de función y no son visibles fuera de esa función particular en la que se declara.

a declarado en la app2 no es visible dentro de la app a menos que no devuelva el valor de la app2 y no use el valor de app2 de la aplicación 2 dentro de la app (ambas condiciones deben cumplirse para usarla)

 var a; function app2(a) { var a = 8; return a; } function app(a) { var a = 7; a = app2(a); // reassign the returned value from app2 return a; } console.log(app(a));

2) Si lo devuelve y no lo captura, entonces no sirve de nada. También puedes hacer como:

 var a; function app2(a) { var a = 8; return a; } function app(a) { var a = 7; return app2(a); // Directly return the value of app2 returned value } console.log(app(a));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que el principal culpable de lo que está viendo es que está nombrando los argumentos de las funciones a y también el global se llama a . Al experimentar con esto, esperaría a = 8 cuando se eliminen todas las palabras clave var excepto la global. Esto no sucede porque el argumento, denominado a , oculta la var a . Cuando usa la palabra clave var localmente en una función, esencialmente le está diciendo a javascript que desea declarar una var a con alcance de función local, y no hacer referencia a la var a global, de modo que cualquier cambio permanezca en el alcance de la función.

Mira este fragmento:

 var a; function app2(b) { // changed argument name from `a` to `b` a = 8; // removed var keyword here return a } function app(b) { // changed argument name from `a` to `b` a = 7; // removed var keyword here app2(a) return a } console.log(app(a)); // output: 8

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda