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.
1 2 3 4 5 6 7 8 9 10 11 12 | "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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | "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".
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Persona { ............... static printHtml (objetoPersona){ return "<p>" + objetoPersona.nombre+ "," + objetoPersona.apellidos+ "</p>" ; } } 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:
