Foros del Web » Programando para Internet » Javascript »

Consulta class y subclass

Estas en el tema de Consulta class y subclass en el foro de Javascript en Foros del Web. Hola tengo una duda, relleno un array en la función comenzar con datos de televisores por ejemplo, y luego por cada elemento, llamo a la ...
  #1 (permalink)  
Antiguo 23/02/2017, 08:02
 
Fecha de Ingreso: octubre-2004
Mensajes: 3
Antigüedad: 19 años, 5 meses
Puntos: 0
Consulta class y subclass

Hola tengo una duda, relleno un array en la función comenzar con datos de televisores por ejemplo, y luego por cada elemento, llamo a la funcion calcularPrecioFinal de la subclase.

Código:
function comenzar(){
	var televisores = [];
 
	var mi_televisor_1 = new Televisor(20,"blanco","A",40,10,false);
	televisores.push(mi_televisor_1);
 
	var mi_televisor_2 = new Televisor(20,"azul","B",40,10,true);
	televisores.push(mi_televisor_2);
 
	var mi_televisor_3 = new Televisor(20,"blanco","C",40,10,false);
	televisores.push(mi_televisor_3);
 
	televisores.forEach(function(televisor, index){
		televisor.calcularPrecioFinal();
		console.log ('precioFinal: '+televisor.precioFinal);
	});
}

//CLASE PRINCIPAL
function Electrodomestico(precioBase, color, consumoEnergetico, peso ){
 
	this.color=color || 'blanco';
	this.consumoEnergetico=consumoEnergetico || "F";
	this.precioBase=precioBase || 100;
	this.peso=peso || 5;
	this.precioFinal;
 
	this.calcularPrecioFinal = function() {
		//CALCULOS
		this.precioFinal = this.precioBase;
	}
 
}
 
//SUBCLASE
function Televisor(precioBase, color, consumoEnergetico, peso, resolucion, sintonizador) {
	this.resolucion=resolucion || 20;
	this.sintonizador=sintonizador || false;
 
	this.base = Electrodomestico;
	this.base(precioBase, color, consumoEnergetico, peso);

        this.precioFinal = Electrodomestico.calcularPrecioFinal(); //ERROR isnot a function
 
	this.calcularPrecioFinal = function() {              
	      //CALCULOS
              this.precioFinal = this.precioFinal + 500;
	}
 
}
Televisor.prototype = new Electrodomestico ();
El array televisores se rellena correctamente con todos los valores.

La pregunta es:
En la subclase Televisor, como capturo el valor de precioFinal "lo que está en negrita", que se calcula en la funcion calcularPrecioFinal de la clase principal???
  #2 (permalink)  
Antiguo 24/02/2017, 13:38
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 10 años, 7 meses
Puntos: 39
Respuesta: Consulta class y subclass

Precio Final debería ser otro objeto, chau
__________________
velarde23.com - Soluciones Web
  #3 (permalink)  
Antiguo 24/02/2017, 15:57
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Consulta class y subclass

Cuando te ocurra eso, haz un log a this
Código Javascript:
Ver original
  1. function Televisor(precioBase, color, consumoEnergetico, peso, resolucion, sintonizador) {
  2.     console.log(this)
  3.     this.resolucion=resolucion || 20;
  4.     this.sintonizador=sintonizador || false;
  5.  
  6.     this.base = Electrodomestico;
  7.     this.base(precioBase, color, consumoEnergetico, peso);
  8.  
  9.         this.precioFinal = this.calcularPrecioFinal(); //ERROR isnot a function
  10.  
  11.     this.calcularPrecioFinal = function() {              
  12.           //CALCULOS
  13.               this.precioFinal += 500;
  14.  
  15.     }
  16.  
  17. }

Etiquetas: class, funcion
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 11:49.