A la hora de crear nuestros propios objetos en Javascript; como en otros lenguajes de programación; debemos definir una serie de atributos y métodos. Existen diferencias en la programación orientada a objetos con respecto a otros lenguajes, pero solo vamos a considerar los aspectos comunes.

Para empezar, hay que decir que los objetos en Javascript no es un nuevo objeto creado de la nada como puede parecer a simple vista, sino que es una extensión de un objeto ya predefinido. Este objeto es el denominado Object que ya implementa una serie de métodos y que se enumeran en la siguiente página. Estos métodos son una serie de las funciones más comunes que se suelen definir a la hora de crear un objeto, como puede ser .create() y que nos puede resultar para evitar problemas de asignación que ya comenté en este otro post u otras características como búsqueda de atributos .getOwnPropertyNames() u otras funciones de comportamiento para congelar un objeto y evitar modificaciones del mismo .freeze().

Os habréis percatado de que la palabra prototype se repite a menudo en la declaración de objetos y puede resultar confusa. Prototype es una propiedad interna por defecto dentro del objeto Object y que explican llanamente en este post.

Ahora hemos de tener en cuenta un aspecto en Javascript y es que no distingue entre atributos y métodos. Para aclararnos, en Javascript sucede algo difícil de concebir y es que se puede declarar una variable que sea de un tipo o incluso se puede crear una función dentro de una variable. Esto lo explicaré más adelante en otro post.

Sabiendo esto, asumimos que la declaración de una variable y la de un método es la misma y además el propio constructor del objeto también es un método. Por lo que simplificamos absolutamente toda la definición del objeto a una estructuración de la información que como un conjunto de atributos y métodos tratados por igual.