Foros del Web » Programando para Internet » Javascript »

JS Poo - vincular clases con las herencias.

Estas en el tema de JS Poo - vincular clases con las herencias. en el foro de Javascript en Foros del Web. Estoy estudiando POO en javascript, mi consulta es la siguiente, como puedo crear una herencia usando ya la clase llamada animales que contiene los siguientes ...
  #1 (permalink)  
Antiguo 02/04/2012, 14:20
 
Fecha de Ingreso: octubre-2011
Mensajes: 153
Antigüedad: 12 años, 5 meses
Puntos: 7
JS Poo - vincular clases con las herencias.

Estoy estudiando POO en javascript, mi consulta es la siguiente, como puedo crear una herencia usando ya la clase llamada animales que contiene los siguientes atributos.


Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script language="javascript">
  4. function animales(nombre) {
  5.     this.nombre = nombre;
  6.     this.color = 'negro';
  7.     this.tamanno = 275;
  8.     this.altura = 43;      
  9.     }
  10. </script>
  11. </head>
  12. <body>
  13. <form>
  14. </form>
  15. <script>
  16.     var animal = new animales("Pinky");
  17.     alert("La mascota " + animal.nombre + "  es de color " + animal.color);
  18. </script>
  19. </body>
  20. </html>

Podría crear las clases gatos y perros pero usando la clase anterior.

eso porfavor.

clase gatos
Código Javascript:
Ver original
  1. <script language="javascript">
  2. function gatos(nombre) {
  3.     this.nombre = nombre;
  4.     this.tipo_gatos = 'generico';      
  5. }
  6. </script>


clase perros
Código Javascript:
Ver original
  1. <script language="javascript">
  2. function perros(nombre) {
  3.     this.nombre = nombre;
  4.     this.tipo_perro = 'generico';      
  5.     this.color_perro = 'generico'; 
  6. }
  7. </script>
__________________
Mi mail: [email protected]
  #2 (permalink)  
Antiguo 02/04/2012, 14:32
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Exclamación Respuesta: JS Poo - vincular clases con las herencias.

Primero , estoy casi seguro de que estas declarando mal la clase animales , yo lo habria hecho asi :

Código:
var animales = function(nombre) {
    this.nombre = nombre;
    this.color = 'negro';
    this.tamanno = 275;
    this.altura = 43;       
    }
mas de lo mismo con la clase gatos , yo lo haria asi :
Código:
<script language="javascript">
vat gatos = function (nombre) {
    this.nombre = nombre;
    this.tipo_gatos = 'generico';       
}
Porcierto, podrias aprobechar mejor las oportunidades del contructor , ejemplo :

Código:
var animales = function(nombre,color,tamaño, altura) {
    this.nombre = nombre;
    this.color = color;
    this.tamanno = tamaño;
    this.altura = altura;       
    }
Para que cuando inicialices el objeto tengas control total sobre las propiedades :

Código:
var Mishifu = new gatos('mishifu' 'blanco', 2.00,1.5);

y idem para la clase perros. En cuanto a las herencias, es facil en google escribres “prototypal inheritance” y te salen cientos de ejemplos en Ingles y en español.

Última edición por Albuss; 02/04/2012 a las 14:43
  #3 (permalink)  
Antiguo 02/04/2012, 14:45
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: JS Poo - vincular clases con las herencias.

buenas!
dado que el paradigma de javascript no esta basado en clases, lo que pretendes hacer no se logra de la misma manera que en lenguajes basados en clases. como indica @albuss, la herencia en javascript se hace por prototipos. en todo caso, si quieres tener un feel (sentirse como) del concepto de clases en javascript, se puede mas o menos hacer. en la web hay ejemplos de dicha implementacion... pero como las clases no es mi fuerte, pues no te puedo dar un enlace particular.

@albuss, la declaracion del constructor (la clase) se puede hacer de ambas formas, tanto la que propones como la inicial del autor. una funcion literal y una declaracion de funcion son lo mismo. lo unico que los diferencia es que el interprete crea primero las funciones declaradas (function nombre(){})... function hoisting.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 02/04/2012, 14:47
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 2 meses
Puntos: 30
Información Respuesta: JS Poo - vincular clases con las herencias.

Bueno , me he animado y te pongo un ejemplo de herencia simple:

var Animal = function(type){ //clase animal
this.type = type;
}

Animal.prototype.getType = function(){ // cramos el proptotimo de la clase animal
return this.type;
}

var Dog = function(options){
this.breed = options.breed;
} //creamos una clase para que sea posteriormente inferior a animales

Dog.prototype = new Animal('Dog'); // asignamos la clase dog como prototimo de "new animal" estamos inicializando un objeto, el cual tendra como clase "Dog" que heredará de animales todos los metodos y propiedades
  #5 (permalink)  
Antiguo 03/04/2012, 07:47
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: JS Poo - vincular clases con las herencias.

Como mencionó el compañero zerokilled, el concepto de "clases" no es enteramente aplicable a JavaScript, con lo cual sería correcto no tratar a los constructores de "clases".

Por otro lado, el concepto de herencia es bastante más amplio que la simple idea de herencia simple.

Te recomendaría leer la documentación sobre el método Object#create.

PD: Usa el highlight de código, sino es ilegible.
__________________
blog | @aijoona

Etiquetas: clases, html, js, poo, vincular
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 00:06.