Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: bermartinv en 11 de Febrero 2016, 09:55

Título: JavaScript crear objetos vacíos y añadir métodos Object.defineProperty CU01145E
Publicado por: bermartinv en 11 de Febrero 2016, 09:55
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.
Título: Re:CU01145E
Publicado por: Ogramar 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
Título: Re:JavaScript crear objetos vacíos y añadir métodos Object.defineProperty CU01145E
Publicado por: bermartinv en 12 de Febrero 2016, 10:32
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>
 
Título: Re:JavaScript crear objetos vacíos y añadir métodos Object.defineProperty CU01145E
Publicado por: César Krall en 14 de Febrero 2016, 11:52
Hola! He revisado el código modificado y lo veo bien!