Ver Mensaje Individual
  #8 (permalink)  
Antiguo 12/02/2010, 14:24
Avatar de Tecna
Tecna
 
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 11 meses
Puntos: 45
Respuesta: ¿Por qué no usar function() para generar objetos?

Buenas,

yo hablaba de la constructora Function porque en el primer mensaje de David citando a venkman se hablaba del constructor Function.

David, los valores de los literales de objetos pueden ser variables, se pueden crear mas de un objeto por ejemplo si lo incluyes dentro de un bucle y vas cambiando los valores. Para crear el objeto simplemente se puede hacer con el literal {} . Siguiendo con tu ejemplo, suponiendo que tenemos este formulario:

Código HTML:
Ver original
  1. <form name="usuario" action="">
  2.  
  3.     Nombre: <input type="text" name="nombre">
  4.     Edad: <input type="text" name="edad">
  5.     Direcci&oacute;n <input type="text" name="direccion">
  6.  
  7.     <input type="button" value="crear" name="crear">
  8.  
  9. </form>


Código Javascript:
Ver original
  1. function init()
  2. {  
  3.     var formulario = document.usuario;
  4.     var crear = formulario.crear;  
  5.     crear.onclick = crearUsuario;
  6. }
  7.  
  8. window.onload = init;
  9.  
  10. function crearUsuario()
  11. {
  12.     var formulario = document.usuario;
  13.  
  14.         // valores introducidos en los inputs
  15.     var nombreForm = formulario.nombre.value;
  16.     var edadForm = formulario.edad.value;
  17.     var direccionForm = formulario.direccion.value;
  18.  
  19.         //creamos el objeto
  20.        // asi para crearlo vacio:  var persona = {};
  21.        // asi con un literal de objeto
  22.     var persona = {'dire':direccionForm};  
  23.        // el valor de la propiedad dire es variable en lugar de una
  24.        //cadena como en tu ejemplo
  25.  
  26.        // asignamos los valores a las otras propiedades
  27.     persona.nombre = nombreForm; // por el nombre de la propiedad
  28.     persona['edad'] = edadForm; // simulando un array asociativo, útil
  29.                               //cuando el nombre es variable o se desconoce
  30.  
  31.         //comprobamos los valores que hemos asignado
  32.     alert('Hola   ' + persona.nombre);
  33.     alert('edad : ' + persona['edad']);
  34.  
  35.         // podemos comprobar antes si existe la propiedad
  36.     if (persona.dire) alert('direccion : ' + persona.dire);
  37.  
  38.    
  39. }