Autor Tema: JavaScript crear objeto añadir métodos y propiedades espacio de nombres CU01145E  (Leído 2947 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Posible solución del ejercicio CU01145E del cursjo JavaScript desde cero.

Citar
EJERCICIO

Una de las utilidades de crear objetos vacíos es evitar conflictos de nombres. Supón que creas funciones como:

function crearEntrada() {     // hacer algo  }

function crearSalida() {    // hacer algo  }

 

El problema que se presenta es que en otro momento se pueda definir otra función con el mismo nombre que alguna de las ya definidas, creando un conflicto de nombres.

Crea un objeto vacío denominado GestionDeUsuarios y añádele dos métodos: un método preguntarNombre y un método despedir. Al invocar GestionDeUsuarios.preguntarNombre() se debe establecer la propiedad nombre del objeto con un nombre introducido por el usuario y un id de usuario introducido también por el usuario. Al invocar el método GestionDeUsuarios.despedir() se debe mostrar un mensaje de despedida “Hasta luego nombreDeUsuario” donde nombreDeUsuario será el nombre correspondiente.

Responde la siguiente pregunta: ¿si se crea una función despedir entrará en conflicto con el método definido?

Solución:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Curso JavaScript</title>
<script type="text/javascript">
var GestionDeUsuarios={
bienvenida:function(){
this.nombre=prompt('Introducir su nombre');
this.id=prompt('Introducir su Id');
},
despedir:function(){alert('Hasta luego '+this.nombre)}
}
GestionDeUsuarios.bienvenida();
GestionDeUsuarios.despedir();

function despedir(){
alert('Como podemos comprobar no se crea un conflicto entre las dos funciones "despedir()" porque esta es externa y la otra es interna (está dentro de un objeto definido creado con el método Sigleton)');
}
</script>
</head>
<body>
<div style="text-align: center; margin: 20% 0;">
<input type="button" value="Invocar la segunda función 'despedir()' " onclick="despedir()"></input>
</div>
</body>
</html>

Gracias.

PD: Contesto a la última pregunta mediante el botón en el código.
« Última modificación: 14 de Febrero 2016, 12:10 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

Buena idea crear la función con el mismo nombre para demostrar que no hay conflicto de nombres ;)

Hay una frase que debes mejorar: está dentro de un objeto definido creado con el método Sigleton (es Singleton)

Se debería expresar como:

"está dentro del espacio de nombres creado por un objeto"

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas, César Krall.

Primero felicitarte por el curso.

Sí, con los conceptos soy un desastre. Se me olvidan, me equivoco...pero creo que con más práctica y más ejercicios mejoraré.

Sobre la idea de crear 2 funciones con el mismo nombre, es que creo que es la mejor manera de ver un código cómo funciona haciéndolo funcionar de la manera que quieres probar.

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".