Programación Orientada a Objetos en JavaScript

JavaScript no es un lenguaje orientado a objetos puro por varias razones, entre ellas:

  1. No permite la creación de clases, sino de plantillas (Funciones constructoras –pseudo clases-)
  2. Podemos tener funciones (function()) que no se encuentren encapsuladas en una clase, lo cual no es posible en un lenguaje de POO puro.
  3. No hay soporte directo de herencia ni algunas formas de polimorfismo como sobrecarga de métodos

No obstante, hay algunos hacks o trucos para lograr algunos de estos comportamientos del paradigma P.O.O.

Adicionalmente, en JavaScript, existen varias formas de crear objetos/plantillas, la primera forma que veremos es con una función constructora, la segunda forma es con una notación literal de objetos, vamos a mezclar ambas para conocer un poco de las dos.

Sigue leyendo