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: