Programación Web y Scripting => JavaScript => Mensaje iniciado por: nicolas_alvarezmon en Jueves 28 de Julio de 2011, 07:30
Título: class en javascriptII
Publicado por: nicolas_alvarezmon en Jueves 28 de Julio de 2011, 07:30
Q tal Experto tengo la siguiente class lo que quisiera es mostrar en pantalla con la clase imprime() seria los datos "hp" y "semitorre", la ejecuto la pagina y me da el alert y me dice en el primer cartel (alert) undefined y en el segundo carte (alert) "semitorre". Lo q tendria q hacer seria mostrar en el 1mer alert "hp" y en el 2do alert "semitorre". A qui esta el codigo. Mas abajo probe de otra manera haciendo una clase "caja" q involucre a las 3 fx imprime, interior , exterior, y no fx tampoco. Da el mismo error q el codigo1. Quiza falte algo no se me ocurre que.
Codiogo1
<script> function imprime() { alert (this.marca); alert(this.caja); }
function interior(marca) { this.marca=marca; this.imprime=imprime; } function exterior(caja) { this.caja=caja; this.imprime=imprime; } mipc=new interior("hp") mipc=new exterior("semitorre") mipc.imprime(); </script>
+++++++++++++++++ codigo 2
<script> function caja(imprime,interior,exterior) { this.imprime=imprime; this.interior=interior; this.exterior=exterior; }
function imprime() { alert (this.marca); alert(this.caja); }
function interior(marca) { this.marca=marca; this.imprime=imprime; }
function exterior(caja) { this.caja=caja; this.imprime=imprime; }
Título: Re:class en javascriptII
Publicado por: arielb en Martes 2 de Agosto de 2011, 17:03
Hola, bienvenido al foro. Bueno cada ves que usas la palabra new lo que haces es crear una nueva instancia( o una nueva copia ). Por lo que al hacer :
Código: Javascript
mipc=new interior("hp")
utiliza le método interior
Código: Javascript
function interior(marca){
this.marca= marca;
this.imprime= imprime;
}
y si observamos solo existe marca y no caja por lo que se puede deducir que en la instancia 1 no existe caja y nos va a enviar "undefined". y al hacer dos instancias con el mismo nombre el metodo no imprime todo ya que está mostrando el último valor cargado.