Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/04/2008, 01:57
Rosa08
 
Fecha de Ingreso: marzo-2008
Mensajes: 42
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: creación de objetos (modifica)

muchas gracias, llevo todo el dia intentando que salga y no hay manera. Ahora he puesto , segun lo dicho, este código: más ayuda porfavor!!!!

function Cliente(nombrex, apellido1x, apellido2x, telefonox, poblacionx){
this.nombre = nombrex;
this.apellido1 = apellido1x;
this.apellido2 = apellido2x;
this.telefono = telefonox;
this.poblacion = poblacionx;
this.mostrar = mostrarDatos;
this.modificaPropiedad = function(prop,nuevoValor) {
this[prop] = nuevoValor;
}
}
cliente1 = new Cliente("Saül", "Ferreiro", "Viaplana", "936782763", "Castelldefels")

cliente2 = new Cliente("Roger", "Balaguer", "Blanco", "933238747", "Barcelona")

function mostrarDatos(){
alert ( "NOMBRE: " + this.nombre + " APELLIDO: " + this.apellido1 + ", " + this.apellido2 + " TELÉFONO CONTACTO: " + this.telefono + " POBLACIÓN: " + this.poblacion)

}

cliente1.modificaPropiedad("apellido1", "Fernández");
cliente1.mostrar()
cliente2.mostrar()







Cita:
Iniciado por derkenuke Ver Mensaje
Hola Rosa08:

Es muy sencillo. Pero primero tienes que darte cuenta que la línea
Código PHP:
this.mostrar mostrarDatos
es incorrecta pues no está dentro de una definición de clases (dentro de una function). Así que this no referencia a nada.

Modificar es tan simple como ejecutar esta instrucción una vez tengamos el objeto ya declarado:
Código PHP:
cliente1.apellido1 "Fernández"
También podemos crear un método dentro de nuestra clase Cliente para modificar el apellido1. Dentro de la function Cliente:
Código PHP:
    this.modificaApellido1 = function(nuevoApellido1) {
        
this.apellido1 nuevoApellido1;
    } 
Y en cualquier momento, siempre que ya hayamos declarado cliente1:
Código PHP:
cliente1.modificaApellido1("Fernández"); 
Éste ejemplo tiene el mismo efecto que el anterior.



Quizás te convenga realizar una función genérica para editar cualquier propiedad del objeto. De nuevo como método dentro de la function Cliente:
Código PHP:
    this.modificaPropiedad = function(prop,nuevoValor) {
        
this[prop] = nuevoValor;
    } 
Aquí recuerda que this.apellido1 es lo mismo que this["apellido1"], de esta manera podemos pasar la propiedad como string a la función. De otra manera no funcionaría. En cualquier momento del código, de nuevo, modificaríamos a nuestro antojo:
Código PHP:
cliente1.modificaPropiedad("apellido1""Fernández"); 


Espero que ahora lo tengas más claro.
Un saludo.