Buenas,
Me gustaria, si es posible, resucitar el post anterior. http://www.forosdelweb.com/f2/lengua...t-end-1158554/
Es una pena que, por culpa del integrista de siempre, debamos sacrificar un post sobre un tema interesante.
@TrinityCore indicaba que con Javascript es imposible trabajar en OO y buscaba alternativas.
Yo no estoy completament de acuerdo respecto a lo de Javascript != OO.
https://developer.mozilla.org/en-US/...ct-oriented_JS
En realidad es posible, aunque no de la misma manera que estamos habituados en otros lenguajes. En lugar de utilizar plantillas de objetos (clases) hay que acostumbrarse a comprender y utilizar propotipos (recomiendo echar un vistazo a este canal youtube que lo explica el concepto de una forma muy clara: https://www.youtube.com/playlist?lis...3TSm86nodn0c_u)
Si ir mas lejos, hoy mismo para mi trabajo he escrito varios componentes en Javascript vanilla con herencia (por prototipos) y encapsulacion (miembros publicos y privados).
Es cierto que Javascript es un poco enrevesado para crear este tipo de elementos, pero tambien es verdad que a cambio propone muchas otras estructuras muy intersantes. Por ejemplo, utilizar closures y programacion funcional en Javascript es casi algo natural al lenguaje.
Del mismo modo el caracte monothread es un problema, pero que se solventa muy bien con su naturaleza asincrona. Como en todos los lenguajes, hay que apoyarse en las ventajas para sortear los obstaculos.
Si lo que quieres programar utilizando clases de forma clasica, puedes hacerlo simplemente usando ES6+ (o ES2015/16/17) que propone las palabra clave 'class', 'extends' etc. Eso si, para asegurarte que funcione en todos los navegadores, basta usar un transpiler como Babel (https://babeljs.io/) que transforma tu codigo en Javascript vanilla.
En cualquier caso lo que considero mejor (y mas a la moda) es que te apoyes en una libreria como ReactJS (https://facebook.github.io/react/) que, basado en ES6 y JSX(opcional) facilita enormemente el trabajo y permite hacer interfaces muy potentes sin llegar a tener codigo spaguetti por todas partes.
Un saludo