Autor Tema: JavaScript crear objetos vacíos y añadir métodos Object.defineProperty CU01145E  (Leído 2878 veces)

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Adjunto mi código para el ejercicio CU01145E del curso de JavaScript:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script>
var GestionDeUsuarios = {};
   
Object.defineProperty(GestionDeUsuarios,'nombreUsuario',{value:'',writable:true},'idUsuario',{value:0,writable:true});
   
GestionDeUsuarios.preguntarNombre = function (){
    var usuario = prompt("Cuál es el nombre de usuario:");
    var identificador = prompt ("Introduzca identificador de usuario");
    GestionDeUsuarios.nombreUsuario = usuario;
    GestionDeUsuarios.idUsuario = identificador;
}

GestionDeUsuarios.despedir = function () {
    alert ("Hasta luego "+GestionDeUsuarios.nombreUsuario);
}
 
function Objetos(){
    GestionDeUsuarios.preguntarNombre();
    GestionDeUsuarios.despedir();
    alert ('Tenemos un objeto gestionDeUsuarios con propiedades nombre:'+GestionDeUsuarios.nombreUsuario + 'e id: '+GestionDeUsuarios.nombreUsuario);
    despedir();   
}

function despedir(){
alert('Esta es la funcion despedir() y accedemos a la definicion del objeto con nombre:' + GestionDeUsuarios.nombreusuario);
}     
   
</script>
</head>
<body>
<input type="button" value="Usuario" onclick="Objetos()"/>   
</body>
</html>
 


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

No entrará en conflicto porque hemos definido un objeto que tiene un metodo, para acceder a este metedo tenemos que acceder desde el objeto. Sin embargo, para acceder a la funcion su llamada es directa.
« Última modificación: 12 de Febrero 2016, 09:04 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:CU01145E
« Respuesta #1 en: 12 de Febrero 2016, 09:02 »
Buenas bermartinv

Por favor cuando escribas el título de un tema hazlo como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 por ejemplo es preferible "JavaScript crear objetos vacíos y añadirle métodos ejercicio CU01145E" en lugar de CU01145E

El código que has propuesto como solución no me funciona bien. Por ejemplo pulso el botón y sale:

Cuál es el nombre de usuario: Florencio

Introduzca identificador de usuario: 9

Hasta luego Florencio

Tenemos un objeto gestionDeUsuarios con propiedades nombre:Florencioe id: Florencio

Esta es la funcion despedir() y accedemos a la definicion del objeto con nombre: undefined

Te he señalado en rojo las cosas incorrectas (no sale el id, sale undefined...)

Te recomiendo revisar el código y corregirlo, puedes orientarte revisando lo propuesto en https://www.aprenderaprogramar.com/foros/index.php?topic=3341.0

Salu2

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Respecto al enunciado del hilo del foro, tienes razón, hay que poner algo que nos ayude a saber de lo que va ese ejercicio.

Código modificado

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script>
var GestionDeUsuarios = {};
   
Object.defineProperty(GestionDeUsuarios,'nombreUsuario',{value:'',writable:true},'idUsuario',{value:0,writable:true});
   
GestionDeUsuarios.preguntarNombre = function (){
    var usuario = prompt("Cuál es el nombre de usuario:");
    var identificador = prompt ("Introduzca identificador de usuario");
    GestionDeUsuarios.nombreUsuario = usuario;
    GestionDeUsuarios.idUsuario = identificador;
}

GestionDeUsuarios.despedir = function () {
    alert ("Hasta luego "+GestionDeUsuarios.nombreUsuario);
}
 
function Objetos(){
    GestionDeUsuarios.preguntarNombre();
    GestionDeUsuarios.despedir();
    alert ('Tenemos un objeto gestionDeUsuarios con propiedades nombre:'+GestionDeUsuarios.nombreUsuario + 'e id: '+GestionDeUsuarios.idUsuario);
    despedir();   
}

function despedir(){
alert('Esta es la funcion despedir() y accedemos a la definicion del objeto con nombre:' + GestionDeUsuarios.nombreUsuario);
}     
   
</script>
</head>
<body>
<input type="button" value="Usuario" onclick="Objetos()"/>   
</body>
</html>
 
« Última modificación: 14 de Febrero 2016, 11:52 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! He revisado el código modificado y lo veo bien!
Responsable de departamento de producción aprenderaprogramar.com

 

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".