201
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / JavaScript crear objeto añadir métodos y propiedades espacio de nombres CU01145E
« en: 12 de Febrero 2016, 17:38 »
Posible solución del ejercicio CU01145E del cursjo JavaScript desde cero.
Solución:
Gracias.
PD: Contesto a la última pregunta mediante el botón en el código.
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.