Esencialmente todas las clases son Prototipos
class Persona {
constructor(nombre,apellido,edad){
this.nombre = nombre
this.apellido = apellido
this.edad = edad
}
saludar(){
//variables dentro de metodos
//1
console.log(`Hola, me llamo ${this.nombre} ${this.apellido}`)
//2
var nombre = this.nombre
var apellido = this.apellido
console.log(`Hola, me llamo ${nombre} ${apellido}`)
//3
var { nombre, apellido } = this
console.log(`Hola, me llamo ${nombre} ${apellido}`)
}
}
//Es una receta de cocina
class Persona {
constructor(nombre,apellido,edad){
this.nombre = nombre
this.apellido = apellido
this.edad = edad
}
saludar(){
console.log(`Hola, me llamo ${this.nombre}`)
}
soyViejo(){
console.log(`${(this.edad < VEJEZ ? (`Toi jovenaz@`):(`Toi chavorruc@`))}`)
}
}
class Desarrollador extends Persona{
constructor(nombre,apellido,edad){
super(nombre, apellido,edad)
}
saludar(){
console.log(`Hola, me llamo ${this.nombre} y soy dev`)
}
}
//new hace que se cree un nuevo objeto ya prototipado
//se llaman escribiendo el nombre del objeto adrian
//los atributos se llaman con objeto.atributo adrian.nombre
//las funciones se llaman con objeto.funcion() adrian.saludar()
var adrian = new Persona('Adrián', 'García', 25)
var dama= new Desarrollador('Damáris', 'Soto', 22)
var neft = new Persona('Nefteradi', 'Luna', 1)
Recuerda que puedes mandar valores como parámetro
class Persona {
constructor(nombre,apellido,edad){
this.nombre = nombre
this.apellido = apellido
this.edad = edad
}
saluda(fn){
//Hola me llamo Adrian y soy dev
console.log(`Hola, me llamo ${this.nombre} y soy dev`)
//Adrian envio un 'hola'
fn && console.log(`${this.nombre} envio un '${fn}'`)
}
}
//declaramos el objeto con su clase
var adrian = new Persona('Adrián', 'García', 25)
//llamamos al objeto con su atributo-funcion y le mandamos un hola
adrian.saluda('hola')
/**
class es la nueva clase
extends es la clase de la que hereda
constructor es donde se manejan las props y la inicializacion de parametros de la clase
tambien es el metodo que corre por defecto al crear una clase
super es el manejador del constructor de la clase heredada
*/
class Desarrollador extends Persona{
constructor(nombre,apellido,edad){
super(nombre, apellido, edad)
}
saluda(fn){ //METODO
var {nombre, apellido} = this
console.log(`Hola, me llamo ${nombre} y soy dev`)
fn && fn(nombre,apellido,true)
}
}
const responder = (nombre, apellido, esDev) => {
console.log(`Buen día, ${nombre} ${apellido}`)
esDev && console.log(`Me parece genial que seas Dev`)
}
var dama= new Desarrollador('Damáris', 'Soto', 22)
dama.saluda(responder)