Listado completo de tutoriales
ES6 - Definición de métodos estáticos |
Con esta nueva actualización de JavaScript tenemos la posibilidad de definir métodos estáticos en una clase.
Un método estático pertenece a la clase y no a una instancia u objeto de una clase. Para llamar luego a un método estático lo hacemos directamente antecediendo el nombre de la clase.
Se las utiliza para definir funcionalidades que pertenecen a una clase pero que no dependan de instancias de dicha clase.
Los métodos estáticos no pueden acceder a los atributos de la clase mediante this.
Plantear una clase llamada 'Matematica' que defina una serie de métodos estáticos que nos retorne el primero el mayor de dos enteros y el segundo el menor. Además agregar un tercer método estático que retorne un valor aleatorio entre dos valores enteros que le enviamos como parámetros.
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> class Matematica { static mayor(v1, v2) { if (v1 > v2) return v1; else return v2; } static menor(v1, v2) { if (v1 < v2) return v1; else return v2; } static aleatorio(inicio, fin) { return Math.trunc((Math.random() * (fin + 1 - inicio)) + inicio); } } let x1 = Matematica.aleatorio(1, 10); let x2 = Matematica.aleatorio(1, 10); document.write(`El mayor entre ${x1} y ${x2} es ${Matematica.mayor(x1,x2)} <br>`); document.write(`El menor entre ${x1} y ${x2} es ${Matematica.menor(x1,x2)}`); </script> </body> </html>
Utilizamos la palabra clave 'static' para definir éste tipo de métodos:
static mayor(v1, v2) { if (v1 > v2) return v1; else return v2; }
Un método estático normalmente implementa un algoritmo para procesar los datos que llegan como parámetro.
Para la llamada a un método estático lo hacemos antecediendo el nombre de la clase y no un objeto de la clase:
let x1 = Matematica.aleatorio(1, 10);