Adjunto mi código para el ejercicio CU01145E del curso de JavaScript:
<!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.