Foros del Web » Programando para Internet » Javascript »

creación de objetos (modifica)

Estas en el tema de creación de objetos (modifica) en el foro de Javascript en Foros del Web. Hola, estoy realizando un script donde he confeccionado dos clientes que contienen los siguientes atributos: nombre, apellido1, apellido2, telefono y población. y luego debo crear ...
  #1 (permalink)  
Antiguo 14/04/2008, 11:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 42
Antigüedad: 16 años, 1 mes
Puntos: 0
creación de objetos (modifica)

Hola, estoy realizando un script donde he confeccionado dos clientes que contienen los siguientes atributos: nombre, apellido1, apellido2, telefono y población. y luego debo crear el siguiente metodo de modificacion de atributos:
modificaNombre, modificaApellido1, modificaApellido2, modificaTelefono y modificaPoblación.
De forma que estos metodos modificaran los valores que el objeto tenga a realizar la contruccion de este, es decri, Para que el contructor del objeto sea capaz de crear el objeto cliente con todos sus atributos.

Yo he realizado este script con dos botones (cliente1, cliente2) y funciona correctamente pero no se como tengo que hacer para modificar. (eso no lo entiendo muy bien)
Alguien me puede ayudar? porfavor?
gracias.

script:

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;
}
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)
}
this.mostrar = mostrarDatos;

cliente1.mostrar()
cliente2.mostrar()
  #2 (permalink)  
Antiguo 14/04/2008, 16:20
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: creación de objetos (modifica)

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.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 15/04/2008, 01:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 42
Antigüedad: 16 años, 1 mes
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.
  #4 (permalink)  
Antiguo 15/04/2008, 05:50
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: creación de objetos (modifica)

Hola de nuevo Rosa08.

¿Qué problema hay? A mi me funciona perfectamente. Donde debería alertar Saül Ferreiro me alerta Saül Fernández.


¿Qué es lo que quieres conseguir?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:48.