Respuesta al ejercicio CU01145E del manual de programación JavaScript con ejercicios resueltos de aprenderaprogramar.
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.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejercicio CU01145E</title>
<script>
var gestionDeUsuarios = {};
gestionDeUsuarios.preguntarNombre = function(){
this.nombreUsuario = prompt('Introduzca su nombre');
this.idUsuario = prompt('Introduzca un id personal');
}
gestionDeUsuarios.despedir = function(){
alert('Hasta luego ' + this.nombreUsuario);
}
</script>
</head>
<body>
<input type="button" value="Registrarse" onclick="gestionDeUsuarios.preguntarNombre()">
<input type="button" value="Salir" onclick="gestionDeUsuarios.despedir()">
</body>
</html>
Responde la siguiente pregunta: ¿si se crea una función despedir entrará en conflicto con el método definido?
No entrará en conflicto ya que el
método despedir solo funciona si se hace referencia al objeto creado, mientras que la
función se ejecuta de forma 'global'. Para que la función
despedir se ejecute, se llamaría de la siguiente forma:
onclick="despedir()";
En cambio para que el método despedir funciona se haría de la siguiente forma:
onclick="nombreDelObjeto.despedir()";