Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/04/2012, 12:31
aurson
 
Fecha de Ingreso: octubre-2011
Mensajes: 36
Antigüedad: 12 años, 7 meses
Puntos: 2
Exclamación Respuesta: Problema con POO y base de datos

Sí, la verdad es que hace muy poco que estoy metido en POO en Javascript, pero voy aprendiendo poco a poco.

Dafonz... me ha sido de mucha utilidad el enlace que me has indicado. Mil gracias, ahora lo entiendo algo mejor.

Aquí está el nuevo código (creo que lo tengo mejorado), pero no entiendo porque no funciona la "vinculación" entre la clase principal y las asociadas ( tipo de disciplina ). ¿Me podéis dar alguna pista?

Un saludo y Muchas Gracias por adelantado!


Código:
var lista_caballos = new Array();	

// Clase CABALLO
var Caballo = function (nombre, raza, capa, disciplina) {
	
    this.nombre = nombre;
    this.raza = raza;
    this.capa = capa;
    this.disciplina = disciplina;

				if (this.disciplina == "Salto") {					
						Salto.prototype = new Caballi();
						var Caballi = new Salto();
						alert(Caballi.nombre + ": " + Caballi.patas);
				}
	
				if (this.disciplina == "Doma") {
						Doma.prototype = new Caballi();
						var Caballi = new Doma();
						alert(Caballi.nombre + ": " + Caballi.forma_cuello);
				}
	
				if (this.disciplina == "Raid") {
						Raid.prototype = new Caballi();
						var Caballi = new Raid();
						alert(Caballi.nombre + ": " + Caballi.resistencia);
				}
	

	alert("CABALLO " +  this.nombre +" CREADO");
		
}


// Recoger/Validar datos formulario
function pre_Caballo(form) {
	nom = form.nom.value;
	rasa = form.rasa.value;
	capa = form.capa.value;
	
	// DISCIPLINA (salto,doma, raid)
	disciplina = document.f_caballos.disciplina_OK[document.f_caballos.disciplina_OK.selectedIndex].value;

	//crear instancia para el caballo X
	var nombre = new Caballo(nombre, raza, capa, disciplina);
	
	//guardo en array caballos
	lista_caballos.push(nom);

}

//---------------- CLASES ASOCIADAS A DISCIPLINA ---------------//


var Salto = function () {
	this.patas = "SALTO - patas";
	this.altura_max = "altura_max";
}

var Doma = function () {
	this.forma_cuello = "DOMA - forma_cuello";
	this.tipo_movimiento = "tipo_movimiento";
}

var Raid = function () {
	this.resistencia = "RAID - resistencia";
	this.velocidad = "velocidad";
	this.carga = "carga";
}
		

//---------------- CLASES ASOCIADAS A DISCIPLINA ---------------//