Estoy trabajando en un proyecto y estoy tratando de escribir código JavaScript orientado a objetos. Acabo de comenzar a leer Douglas Crockford's JavaScript: The Good Parts y rápidamente me estoy dando cuenta de que escribir OOP Java-esque en JavaScript será una tarea difícil.OOP Java-esque en JavaScript y un error de jQuery
algo Hasta ahora, he escrito como el siguiente ...
// index.html
$(document).ready(function() {
$().SetUpElements();
});
// this is in a different js file
$.fn.SetUpElements = function() {
// do stuff here
$().UpdateElement();
};
// this is in yet another different js file
$.fn.UpdateElement = function() {
// do stuff here
var element = new Element(id, name); // continue doing work
};
function Element(id, name) {
var id = id;
var name = name;
// other stuff
};
... la idea es que quiero objetos/funciones a refactorizan y desacoplados tanto como sea posible; Quiero volver a utilizar todo el código que pueda. He difundido una gran cantidad de mi código a través de diferentes archivos .js con la intención de agrupar códigos relevantes específicos, al igual que si escribiera diferentes clases en Java.
Como he estado aprendiendo más sobre jQuery, me he dado cuenta de que la notación $.fn.foo = function() { ... };
realmente está agregando esta función foo
al prototipo de todos los objetos jQuery. ¿Esto es algo que debería estar haciendo? ¿Estoy haciendo mal uso de jQuery de alguna manera?
Agradecería sugerencias sobre cómo mejorar mi enfoque de OOP en JavaScript y me gustaría ver referencias a fuentes/tutoriales/artículos/etc ... que discuten este tema. Por favor, siéntase libre de enviar comentarios, incluso si se ha seleccionado una respuesta. Estoy buscando su consejo ... esta es la razón por la que publiqué :)
** Nota: No estoy desarrollando un plugin jQuery. Estoy desarrollando una aplicación web y haciendo uso de jQuery.
eche un vistazo a require.js para manejar su carga de archivos y dependencias para proyectos de gran tamaño. – Raynos
@Raynos ... definitivamente echaremos un vistazo. es similar a http://headjs.com/ – Hristo