Introducción a JavaScript para principiantes

Objetos

Es hora de hablar de los tipos por referencia que dejamos pendientes. Dentro de esta categoría encontramos:

  • Objetos
  • Arreglos
  • Funciones

Así que vamos a empezar con los primeros.

¿Qué es un objeto?

En JavaScript y otros lenguajes, un objeto es eso, un objeto. De acuerdo, no es la mejor definición, pero se entiende mejor si pensamos en ello como la representación virtual de un objeto real.

Mirad, los objetos en la vida real comparten propiedades que permiten definirlos. Por ejemplo pensemos en una persona. Hay muchas personas, pero todas comparten algunas propiedades comunes: tienen un nombre, un apellido, una edad...

Vamos a trasladar este concepto a código.

Partamos de la base que tenemos tres variables para representar esas propiedades de una persona:

index.js

let nombre = 'Héctor';
let apellido = 'Costa';
let edad = 30;

Necesitamos una forma de trabajar con las tres variables en conjunto, es decir, un objeto. Lo haremos con la siguiente sintaxis:

let persona = {

};

Las llaves indican que vamos a definir un objeto, cuyo contenido se declara en pares clave-valor.

Cada clave es como el nombre de la variable pero para la propiedad del objeto y seguido de dos puntos vendría el valor:

let persona = {
  nombre: 'Héctor',
  apellido: 'Costa',
  edad: 30;
};

console.log(persona);

Como podremos observar en la consola, el objeto persona está formado por las tres propiedades.

Hay dos formas de trabajar con las propiedades de un objeto. Por ejemplo, si queremos modificar el contenido de una propiedad podemos usar:

// Notación con punto

persona.nombre = 'Daniel';
console.log(persona.nombre);

O también:

// Notación con corchetes

persona['nombre'] = 'Javier';
console.log(persona['nombre']);

La notación con corchetes tiene la ventaja de que puede ser dinámica, es decir, podemos definir en una variable una cadena con el nombre de la propiedad que queremos manipular:

let propiedad = 'nombre';

persona[propiedad] = 'Fernando';
console.log(persona[propiedad]);

Quizá os parece algo confuso y no lo veis mucha utilidad, pero estoy seguro que dentro de un tiempo recordaréis este truco y os hará un buen servicio.