JavaScript
Tutorial JavaScript: Clases y objetos
JavaScript clases objetos: creación y uso. Domina la creación y uso de clases y objetos en JavaScript con ejemplos prácticos y detallados.
Aprende JavaScript GRATIS y certifícateEn JavaScript, las clases y objetos son conceptos fundamentales de la programación orientada a objetos (OOP, Object-Oriented Programming). La OOP es un paradigma de programación que permite organizar el código de manera estructurada y modular.
Clases
Las clases en JavaScript son una plantilla o modelo que define una entidad, sus propiedades y comportamientos. Se puede pensar en una clase como un molde a partir del cual se crean múltiples objetos con características similares. A partir de ECMAScript 2015 (ES6), las clases se introdujeron en JavaScript como una sintaxis más limpia y sencilla para trabajar con objetos y herencia.
Para declarar una clase en JavaScript, se utiliza la palabra clave class
seguida del nombre de la clase. El nombre de la clase, por convención, debe comenzar con una letra mayúscula.
class Persona {
// Cuerpo de la clase
}
En el cuerpo de la clase, se pueden definir propiedades y métodos que estarán asociados con los objetos creados a partir de esta clase.
Constructor
El constructor es un método especial dentro de una clase, que se ejecuta automáticamente cuando se crea un objeto a partir de esa clase. Se utiliza para inicializar los valores de las propiedades del objeto. Para definir un constructor, se utiliza la palabra clave constructor
seguida de los argumentos que se recibirán, si es necesario, y se colocan entre paréntesis.
class Persona {
constructor(nombre, apellido, edad) {
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
}
}
Aquí, el constructor de la clase Persona
acepta tres argumentos (nombre, apellido y edad) y asigna estos valores a las propiedades correspondientes del objeto (nótese el uso de this
).
Métodos
Los métodos son funciones asociadas con una clase que describen el comportamiento de los objetos de esa clase. Los métodos se definen dentro del cuerpo de la clase, después del constructor y sin la palabra clave function
.
class Persona {
constructor(nombre, apellido, edad) {
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
}
presentarse() {
return `Hola, mi nombre es ${this.nombre} ${this.apellido} y tengo ${this.edad} años.`;
}
}
En este caso, se ha añadido un método presentarse
a la clase Persona
que devuelve una cadena de texto con una presentación del objeto que lo invoca.
Objetos
Los objetos son instancias concretas de una clase. Se crean utilizando la palabra clave new
seguida del nombre de la clase y, si es necesario, los argumentos que se pasan al constructor.
const persona1 = new Persona('Juan', 'Pérez', 30);
Aquí, persona1
es un objeto de la clase Persona
, y sus propiedades nombre
, apellido
y edad
han sido inicializadas con los valores 'Juan', 'Pérez' y 30, respectivamente.
Se puede acceder a las propiedades y métodos de un objeto utilizando la notación de punto: objeto.propiedad
o objeto.metodo()
.
console.log(persona1.nombre); // Juan
console.log(persona1.presentarse()); // Hola, mi nombre es Juan Pérez y tengo 30 años.
Cabe mencionar que cada objeto creado a partir de una clase es independiente y tiene su propio conjunto de propiedades y referencias a métodos. Los cambios en un objeto no afectan a otros objetos creados a partir de la misma clase.
Campos
En JavaScript, los campos en clases son las variables o atributos propios de cada instancia de la clase. Estos campos se definen y asignan valores inicialmente dentro del método constructor de la clase y se acceden mediante la palabra clave this
. Esto permite a cada objeto tener su propio conjunto de valores para dichos campos, permitiendo almacenar información específica de cada instancia. Los campos pueden ser de cualquier tipo de dato, como números, cadenas, otros objetos, etc.
Campos estáticos
La distinción entre campos estáticos y no estáticos en clases de JavaScript radica en su ámbito y pertenencia:
- Los campos no estáticos son atributos que pertenecen a las instancias individuales de la clase. Cada instancia de la clase tiene su propia copia de estos campos y estos se definen dentro del constructor usando
this
. - Los campos estáticos, por otro lado, son atributos que pertenecen a la propia clase y no a las instancias individuales. Estos campos son compartidos entre todas las instancias de la clase y se definen directamente en la clase usando la palabra clave
static
.
class Persona {
// Campo estático
static numeroClientes = 1000;
// Campo no estático
nombre;
constructor(nombre) {
this.nombre = nombre;
}
}
const persona1 = new Persona("Alice");
const persona2 = new Persona("Bob");
// Una variable no estática solo puede ser accedida por instancias
console.log(persona1.nombre); // "Alice"
console.log(persona2.nombre); // "Bob"
console.log(Persona.nombre); // undefined
// Una variable estática solo puede ser accedida por la propia clase
console.log(persona1.numeroClientes); // undefined
console.log(persona2.numeroClientes); // undefined
console.log(Persona.numeroClientes); // 1000
// Modificar variable no estática
persona1.nombre = "Ana";
console.log(persona1.nombre); // "Ana"
console.log(persona2.nombre); // "Bob"
// No afecta a otras instancias
// Modificar variable estática
Persona.numeroClientes = 2000;
En resumen, las clases y objetos en JavaScript son conceptos clave de la programación orientada a objetos. Las clases actúan como plantillas o moldes a partir de los cuales se crean objetos con propiedades y comportamientos similares. Los objetos son instancias concretas de una clase, que encapsulan datos (propiedades) y ofrecen funcionalidad (métodos) para manejar esos datos. Las clases en JavaScript se definen utilizando la palabra clave class
, y se pueden crear objetos a partir de ellas utilizando la palabra clave new
.
Ejercicios de esta lección Clases y objetos
Evalúa tus conocimientos de esta lección Clases y objetos con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Funciones flecha
Polimorfismo
Array
Transformación con map()
Introducción a JavaScript
Gestor de tareas con JavaScript
Manipulación DOM
Funciones
Funciones flecha
Async / Await
Creación y uso de variables
Excepciones
Promises
Funciones cierre (closure)
Herencia
Herencia
Estructuras de control
Selección de elementos DOM
Modificación de elementos DOM
Filtrado con filter() y find()
Funciones cierre (closure)
Funciones
Mapas con Map
Reducción con reduce()
Callbacks
Manipulación DOM
Promises
Async / Await
Eventos del DOM
Async / Await
Promises
Filtrado con filter() y find()
Callbacks
Creación de clases y objetos Restaurante
Reducción con reduce()
Filtrado con filter() y find()
Reducción con reduce()
Conjuntos con Set
Herencia de clases
Eventos del DOM
Clases y objetos
Modificación de elementos DOM
Mapas con Map
Funciones
Tipos de datos
Clases y objetos
Array
Conjuntos con Set
Array
Encapsulación
Clases y objetos
Uso de operadores
Uso de operadores
Estructuras de control
Excepciones
Transformación con map()
Funciones flecha
Selección de elementos DOM
Encapsulación
Mapas con Map
Creación y uso de variables
Polimorfismo
Tipos de datos
Estructuras de control
Todas las lecciones de JavaScript
Accede a todas las lecciones de JavaScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Javascript
Sintaxis
Tipos De Datos
Sintaxis
Variables
Sintaxis
Operadores
Sintaxis
Estructuras De Control
Sintaxis
Funciones
Sintaxis
Funciones Cierre (Closure)
Sintaxis
Funciones Flecha
Programación Funcional
Filtrado Con Filter() Y Find()
Programación Funcional
Transformación Con Map()
Programación Funcional
Reducción Con Reduce()
Programación Funcional
Clases Y Objetos
Programación Orientada A Objetos
Excepciones
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Array
Estructuras De Datos
Conjuntos Con Set
Estructuras De Datos
Mapas Con Map
Estructuras De Datos
Manipulación Dom
Dom
Selección De Elementos Dom
Dom
Modificación De Elementos Dom
Dom
Eventos Del Dom
Dom
Callbacks
Programación Asíncrona
Promises
Programación Asíncrona
Async / Await
Programación Asíncrona
Certificados de superación de JavaScript
Supera todos los ejercicios de programación del curso de JavaScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender el concepto de clases y objetos en JavaScript.
- Conocer la sintaxis para declarar una clase utilizando la palabra clave
class
. - Aprender a definir un constructor dentro de una clase para inicializar propiedades del objeto.
- Entender cómo se definen los métodos dentro de una clase y cómo se invocan desde los objetos.
- Saber cómo crear objetos a partir de una clase utilizando la palabra clave
new
. - Comprender la diferencia entre campos estáticos y no estáticos en las clases.
- Conocer la importancia de encapsulación en la programación orientada a objetos.
- Aprender a acceder a las propiedades y métodos de un objeto utilizando la notación de punto.
- Saber cómo cada objeto creado a partir de una clase es independiente y tiene su propio conjunto de propiedades y métodos.
- Comprender cómo los objetos permiten organizar el código de manera estructurada y modular en la programación.