2010-08-08 18 views
5

¿Alguien puede señalarme en la dirección correcta de algún javascript orientado a objetos del mundo real? Estoy aprendiendo OO para javascript de algunos libros, pero todos los ejemplos que se dan en estos libros se reducen al objeto perro que hereda del prototipo animal o similar. Realmente quiero ver algo un poco más sustancial.buen ejemplo de OO JS?

He examinado jQuery y bibliotecas similares (base, prototipo) pero los considero como ejemplos detallados. Estaba buscando un script donde pueda ver claramente la herencia en uso (clásica o protoypal).

Respuesta

5

Buenos ejemplos del "mundo real" para aprender OO javascript es estudiar realmente algunos de los frameworks de javascript disponibles. Algunos de ellos soportan y utilizan OO dentro de su propio código de la arquitectura:

Estos proporcionan una gran referencia y diversas estrategias para la escritura javascript OO.

+0

Hi- gracias por la respuesta. Acabo de descargar YUI y en comparación con mirar el código de la biblioteca jQuery, está muy claro cómo está funcionando la biblioteca ... Puedo ver la función Crockfords object() para la herencia allí también –

+0

@elduderino Aprendí mucho de YUI buscando versiones anteriores yui también. Todos estos marcos son geniales para estudiar algunos trucos ingeniosos en javascript. ¡Y los enlaces de Doug Corckford en javascript son oro! – naikus

+0

+1: Este es un buen consejo. Estoy aprendiendo Javascript OO en este momento y descargué todo lo anterior para usar como biblioteca de referencia. –

2

IMO, el prototipo de javascript es muy útil y el OOP clásico no es necesario.

Como un ejemplo del mundo real, considere el google maps v3 api. Vamos a implementar un nuevo OverlayView:

 
// implement an OverlayView // 
MyOverlay.prototype = new google.maps.OverlayView();

// the "constructor" function // function MyOverlay(position, node, map) { // set the parameters // this.position = position; this.node = node; this.map = map; this.setMap(this.map); }

// required onAdd function // MyOverlay.prototype.onAdd = function() { // observe the getPanes function inherited from OverlayView // var panes = this.getPanes(); // bla bla // }

// required draw function // MyOverlay.prototype.draw = function() { // bla bla // } // .. other functions //

// now instantiate an object // var instance = new MyOverlay(position, node, map);

Si esto no funciona para usted, numerosas bibliotecas externas (por ejemplo, Prototype, Dojo, jQuery, etc) ofrecen grandes soluciones para la programación orientada a objetos clásico.

+0

Sí, eso funciona para mí. Los conceptos prototipo, pseudo-clásico y prototípico son claros para mí, pero estoy teniendo problemas para ver cómo introducirlo en mi propio código. –

Cuestiones relacionadas