Me encanta que antes de enseñarnos un concepto, nos expliquen cómo era antes de ES6. 💚
Introducción al Clean Code
Deuda técnica y refactorización de código
Reglas del diseño simple
Qué es Clean Code
Nombre y uso de las variables
Uso correcto de var, let y const
Reglas para la nomenclatura
Cómo nombrar según el tipo de dato
Ejercicio: Nombra correctamente según su tipo de dato
Ámbito de las variables
Ámbito global
Ámbito local o de función
Ámbito de bloque
Ámbito estático
Hoisting
Funciones
Declaración y expresión de funciones
Parámetros y argumentos
Funciones de flecha y el this
Clases
POO con ES6 (constructores, métodos y herencia)
Herencia en JavaScript
Tamaño reducido (responsabilidad única)
Organización
Optimizaciones
Cuándo usar comentarios
Formato coherente (codear en equipos)
Principio DRY
Notación big O
Cierre
Sigue aprendiendo JavaScript
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Alejandra Camacho
Aportes 12
Preguntas 1
Me encanta que antes de enseñarnos un concepto, nos expliquen cómo era antes de ES6. 💚
//Clase padre
class Person (name) {
constructor(name) {
this.name;
}
greet() {
console.log(`Hola, mi nombre es ${this.name}`);
}
}
//Clase hija
class Developer extends Person () {
constructor(name) {
super(name);
}
writeCode(coffe) {
coffee ? console.log ("Estoy desarrollando una nueva feature") : console.log("Necesito más café...")
}
}
code :
//Clase Padre
// Antes de ES6
function Person(name) {
this.name = name;
}
Person.prototype.greet = function () {
return "Hello I am " + this.name;
}
var person = new Person("Alex");
console.log(person.name); //> Alex
console.log(person.greet());//>Hello I am Alex
//Clase Hija
function Developer(name) {
this.name = name;
}
//herencia con Prototipos
Developer.prototype = Object.create(Person.prototype)
Developer.prototype.writeCode = function (coffe) {
if (coffe) console.log('I am working in a new feature');
else console.log('I need coffe, please!');
};
var dev = new Developer('Dono');
//accedo desde la clase hija a la funcion del Padre
dev.greet()//> Hello I am Alex
dev.writeCode()//>I need Coffe
//Ahora con ES6 recomienda:
//Sintaxis a partir de ES6:
//Clase Padre
class People {
constructor(name) {
this.name = name;
}
greet () {
console.log('Hola! me llamo ' + this.name);
}
}
// const cat = new Cat("Michi");
// console.log(cat.name);
// console.log(cat.greet());
//Clase Hija
class Developer extends People {
constructor(name){
super(name);
}
writeCode(coffe){
coffe ? console.log('I am developing a new feature') : console.log('I need coffe!');
}
}
const dev = new Developer('Ing');
dev.greet();//Hola! me llamo Ing
dev.writeCode(true);//I am developing a new feature
Amé saber esto de como se hacía antes de ES6, no recuerdo si he visto de alguién más que explique eso, quizás si, pero igual no recuerdo. Muchas gracias Alex
Clase 17: Herencia en JavaScript
extends
para crear herenciasprototype
para generar herenciaEjemplo Herencia con EMAC6
//Clase padre
class Person (name) {
constructor(name) {
this.name;
}
greet() {
console.log(`Hola, mi nombre es ${this.name}`);
}
}
//Clase hija
class Developer extends Person () {
constructor(name) {
super(name);
}
writeCode(coffe) {
coffee ? console.log ("Estoy desarrollando una nueva feature") : console.log("Necesito más café...")
}
}
Antes era horrible
brutal
Muy bien explicado el tema de herencia y facil de entender!!
Antes de ES6, para ejecutar el constructor de la clase padre, lo que ahora se hace con super()
, antes se hacia de la siguiente manera
function Developer(name) {
Person.call(this, ...arguments)
}
Claro que aquí el problema era que el Function Constructor padre estaba harcodeado, ya que si queremos que Developer herede de otra “clase”, se puede hacer de la siguiente manera:
function Developer(super, ...args){
if (super) super.apply(this, args)
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?