Community Post

Node.js Introducción a la POO ES6

wolf-mtwo

Introduccion

Desde la llegada de la version 6 de node.js se esta intensificando es uno POO en el lado del servidos asi que para no quedar nos atras.. aca van algunos ejemplos.

  • Clases
  • Constructores
  • Funciones staticas
  • Herencia

Clases

Al igual que las clases de otro leguajes de programacion nesecitan ser instanciadas

class Foo {}
let foo = new Foo();

// validacion
foo instanceof Foo; // true

Constructor

class Animal {
  constructor(nombre, typo = 'pez') {
    this.clasificacion = 'vertebrados';
    this.nombre = nombre;
    this.typo = typo;
  }
}

// imprimiendo una instancia
console.log(new Animal()); // Animal { clasificacion: 'vertebrados', nombre: undefined, typo: 'pez' }

los contructores puedes ther valores por defecto clasificacion , parametro nombre o valores alternativos

Funciones staticas

Para ejecutar una funcion estatica no es nesesario ejecutar una funccion static

class Animal {
  static buscarComida() {
    // alguna accion
  }
}

// ejecutando una funcion statica
Animal.buscarComida(); // no hay nada

Herencia

class Persona {
  constructor(nombre, apellidos, edad) {
    this.nombre = nombre;
    this.apellidos = apellidos;
    this.edad = edad
  }
  getNombre() {
    return this.nombre;
  }
  getApellidos() {
    return this.apellidos;
  }
  getEdad() {
    return this.edad;
  }
}

class Profesor extends Persona {
  constructor(nombre, apellidos, edad) {
    super(nombre, apellidos, edad);
    this.id = null;
  }
  setId(id) {
    this.id = id;
  }
  getId() {
    return this.id;
  }
  mostrarNombreApellidos() {
    console.log(`${this.getId()}: ${this.getNombre()} ${this.getApellidos()}`);
 }
}

// Ejemplo de herencia
let profesor = new Profesor ('Anacleto', 'trivilin', 20);
profesor.setId('2017-03-16');
profesor.mostrarNombreApellidos(); // 2017-03-16:  Anacleto trivilin