¿Qué son las clases? - Curso de JavaScript de cero a máster - Capítulo 41

Último capítulo de momento sobre la programación orientada a objetos, en el que vas a ver lo que son las clases de JavaScript y si realmente son clases estrictamente hablando.

¿Qué son las clases en JavaScript?

A partir de la versión ECMAScript 2015 se introdujeron en JavaScript las clases. Hasta ese momento, se utilizaban las funciones constructoras para crear el equivalente a las clases de otros lenguajes de programación. Por supuesto, te he enseñado a utilizar funciones constructoras porque se siguen utilizando.

En JavaScript se han añadido las clases con el fin de crear una capa de abstracción sobre las funciones constructoras, ya que lo que en realidad hacen, es generar de fondo una función constructora.

La sintaxis de clases en JavaScript

Aquí tienes pseudocódigo para ver la sintaxis de clases en JavaScript:

class NombreClase {
	constructor(argumento1, argumento2, ...) {
		// Propiedades de clase
		propiedad1 = valor;
		propiedad2 = valor;
		...

		// Métodos de clases
		método1() {
			código del método;
		};

		método2() {
			código del método;
		};
	}
}
Palabra del lenguaje nº 52 encontrada.
class es una palabra reservada de JavaScript para crear clases.
Palabra del lenguaje nº 53 encontrada.
constructor() es un método especial para crear e inicializar un objeto creado a partir de una clase.

Diferencia entre funciones constructoras y clases

Hagamos una comparación entre una función constructora y una clase.

Ejemplo de función constructora


	function Vehiculo(marca, modelo, fecha_matriculación, color) {
		this.marca = marca;
		this.modelo = modelo;
		this.fecha_matriculación = fecha_matriculacion;
		this.color = color;

		this.acelera = function () {
			console.log('El vehículo ' + this.marca + ' ' + this.modelo + ' acelera.');
		}
	}

	let vehiculo1 = new Vehiculo('Daewoo', 'Lanos', '25/01/2000', 'verde');

Ejemplo de clase

class Vehiculo {
	constructor(marca, modelo, fecha_matriculacion, color) {
		this.marca = marca;
		this.modelo = modelo;
		this.fecha_matriculación = fecha_matriculacion;
		this.color = color;

		this.acelera = function () {
			console.log('El vehículo ' + this.marca + ' ' + this.modelo + ' acelera.');
		}
	}
}

let vehiculo1 = new Vehiculo('Daewoo', 'Lanos', '25/01/2000', 'verde');

Como puedes ver, la clase realmente está utilizando una función constructora. Esto es solo una forma de facilitar el entendimiento de las funciones constructoras en JavaScript para nuevos programadores/as.