$$ \text {“En JavaScript TODO es un objeto”} $$
Los objetos literales (Objetos en JavaScript) no son lo mismo que las instancias (objetos) en la programación orientada a objetos.
Un objeto en JavaScript es una instancia del prototipo Object que es uno de los prototipos por defecto de JS.
const natalia = {
name : 'Natalia',
age : 20,
points : 2000,
};
Los objetos pueden tener un prototipo que actúa como una plantilla para crear un objeto, el cual hereda los métodos y propiedades del prototipo y si este tiene un prototipo también hereda sus métodos y propiedades y así sucesivamente.
Cada objeto que hayamos creado tendrá la propiedad proto que heredará de el objeto prototipo
function Student(name, age, points) {
this.name = name;
this.age = age;
this.points = points;
}
const Juanita = new Student('Juanita', 21, 3500);
Podemos construir objetos de dos formas: De la “nada” (o también llamado objeto literal) o instanciándolo de **un prototipo ya existente. En la mayoría de lenguajes que soportan prototipos existe una clase raíz (por lo general llamada Object) que tiene las propiedades mínimas necesarias para la creación de objetos.
<aside>
📌 Notemos que usamos la palabra reservada this
, esta nos indica que estamos haciendo referencia al objeto
</aside>
<aside>
📌 Usamos la palabra reservada new
, esta palabra la usamos cuando queremos crear una instancia de un objeto a partir de una función constructora que hayamos definido
</aside>
<aside> 💡 Un objeto también puede ser definido como una colección de atributos y métodos heredados de un objeto prototipo.
</aside>
Para crear métodos en objetos literales de JavaScript, lo puedo hacer de la siguiente manera: