Community Post

Node.js Introducción a la POO ES6

wolf-mtwo
👁️ 0 views
💬 comments

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

Table of Contents

    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