La idea de Henry de una clase es estructuras de objetos
function Gato(nombre) {
// El nuevo operador crea un objeto, "this"
this.nombre = nombre;
this.maullar = function() {
return 'Mi nombre es ' + this.nombre + ' ... Meow!';
}
// Devuelve el objeto "this"
}
// con new creamos nuevos objetos con la clase Gato
const sam = new Gato('Sam');
const kitty = new Gato('Kitty');
console.log(sam.maullar()); // 'Mi nombre es Sam ... Meow!'
console.log(kitty.maullar()); // 'Mi nombre es Kitty ... Meow!'
// con prototype podemos agregar metodos la clase Gato
Gato.prototype.saludar = function() {
console.log('holo')
}
/* con Object.create() podemos generar lo que se conoce como herencia
pasando el __proto__ de el padre al hijo */
// objeto padre
function Persona(nombre,apellido,ciudad) {
this.nombre = nombre;
this.apellido = apellido;
this.ciudad = ciudad;
}
// se agrega un metodo a su prototype
Persona.prototype.saludar = function() {
console.log('Soy '+this.nombre+' de '+this.ciudad);
}