Foros del Web » Programando para Internet » Javascript »

algo no entiendo yo con la programacion orientada a objetos

Estas en el tema de algo no entiendo yo con la programacion orientada a objetos en el foro de Javascript en Foros del Web. necesito unpoco de ayuda para comprender esto de la poo con javascript... estoy ratando de generar dos cuadros y que segun haga click en cada ...
  #1 (permalink)  
Antiguo 28/07/2012, 13:04
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
algo no entiendo yo con la programacion orientada a objetos

necesito unpoco de ayuda para comprender esto de la poo con javascript...

estoy ratando de generar dos cuadros y que segun haga click en cada uno de ellos me diga su propiedad nombre...

no se que puede haber mal aqui

Código:
<script>
var Panel=function(nom,x,y){
	this.nombre=nom;
	this.panel = document.createElement('div'); // 2
	this.panel.id = this.nombre; 
	this.panel.className='pan';
	this.panel.style.left=x+"px"; 
	this.panel.style.top=y+"px"; 
	document.getElementById('contenedor').appendChild(this.panel);
	this.me=document.getElementById(this.nombre);
		
	this.me.onclick=function(){
		alert("clickado "+this.nombre);
	}
}
function inicializa(){
	var pans=new Array();
	pans[0] = new Panel("pan0",0,0);
	pans[1] = new Panel("pan1",210,0);
}
</script>
<style>
.pan{width:200px; height:200px; background-color:#09F; position:absolute; top:0; left:0;}
</style>

Última edición por juanito1712; 28/07/2012 a las 13:13
  #2 (permalink)  
Antiguo 28/07/2012, 13:24
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: algo no entiendo yo con la programacion orientada a objetos

cambia this.nombre por this.id
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 28/07/2012, 13:49
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: algo no entiendo yo con la programacion orientada a objetos

si que finciona... pero no puedo de todos modos acceder a la propiedad nombre del objeto?
  #4 (permalink)  
Antiguo 28/07/2012, 14:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: algo no entiendo yo con la programacion orientada a objetos

en la función anónima, la variable this hace referencia al elemento clickeado (htmldivelement) y ahora has de usar uno de sus posibles atributos para obtener su valor. claro está, no existe un atributo nombre por lo tanto tendrás que crearlo
Cita:
this.panel.nombre = this.nombre;
aunque no le veo la lógica
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 28/07/2012, 16:46
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: algo no entiendo yo con la programacion orientada a objetos

la lógica es tema de programación orientada objetos, intento acceder a una propiedad de una clase desde uno de sus métodos pero era incapaz de poder hacer referencia a ellos al final lo he solucionado con algo como eso

Código:
var Panel=function(nom,arrpos,stx,sty){
	var me=this;
	me.dx=stx;
	me.dy=sty;
	this.panel = document.createElement('div'); // 2
	this.panel.id = this.nombre; 
	this.panel.className='pan'; 
	document.getElementById('contenedor').appendChild(this.panel);
	this.yo=document.getElementById(this.nombre);
	this.yo.onclick=function(){
		me.dx=10;
		me.dy=10;
}
todavia no se muy bien del todo que estoy consiguiendo con
var me=this;
pero ya soy capaz de acceder a las propiedades de un objeto en concreto de este modo

Etiquetas: objetos, orientada, programacion
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 02:33.