JavaScript clases y ES6

JavaScript es un lenguaje que soporta tanto programación orientada a objeto como programación funcional. Sin embargo la sintaxis soportada para crear clases y objetos es cuanto menos "pobre", por no decir otra cosa. La versión 6 de ECMAScript mejora estos aspectos de forma significativa.

Declarando clases

A partir de ahora disponemos de la palabra reservada "class" que convertirá en algo mucho más natural la declaración de una clase.


    "use strict";

    class Persona
    {
      constructor(nombre)
      {
        this.nombre = nombre;
      }
    }

    var p1 = new Persona("Pedro");
    console.log(p1.nombre); 

Como se puede observar la sintaxis es mucho más amigable y similar a Java o C# . Se ha añadido también el soporte para constructores a través de la palabra reservada "constructor".

Añadiendo Setters y Getters

Facilita la definición de los métodos set/get es algo que también se echaba en falta.

      "use strict";

    class Persona
    {
        constructor(nombre,apellidos)
        {
            this._nombre = nombre;
            this._apellidos = apellidos;
        }
     get nombre(){
            return this._nombre;
        }

     set nombre(nombre){
            this._nombre = nombre;
        }

        get apellidos(){
            return this._apellidos;
        }

     set apellidos(apellidos){
            this._apellidos = apellidos;
        }

    }

    var p1 = new Persona("Pedro","Perez");
    console.log(p1.nombre); 
    console.log(p1.apellidos); 

Creando métodos estáticos

A partir de ahora la creación de métodos estáticos se podrá realizar apoyándonos en "static".

    class Persona
    {
     ...............
     static printHtml (objetoPersona){

            return "

"+ objetoPersona.nombre+","+ objetoPersona.apellidos+"

"; } } var p1 = new Persona("Pedro","Perez"); console.log(p1.nombre); console.log(p1.apellidos); console.log(Persona.printHtml(p1));

El resultado de todas estas operaciones lo podremos ver impreso en la consola:

Ver todos los comentarios en https://www.genbeta.com

VER 0 Comentario

Portada de Genbeta