Gráffica Academy
Creado para la ComunidadAprende a programar
Escribir al equipo

Contacta con el equipo de Gráffica Estudio Academy.

IG @ X in
Sintaxis

Objetos y scope

Un objeto es la forma que tiene JavaScript de agrupar datos relacionados bajo un mismo nombre — piensa en un cliente con su nombre, email y ciudad, todo junto en una sola cosa. Y ya que hablamos de "dónde vive" cada dato, es el momento perfecto para aclarar el scope: qué partes de tu código pueden ver una variable y cuáles no.

Objetos: agrupar datos relacionados

Un objeto se escribe entre llaves, con pares de clave: valor separados por comas:

objetos.js
1
Pulsa "Ejecutar" para ver el resultado.
Notación con punto

objeto.propiedad — la más habitual, cuando sabes el nombre exacto de antemano.

Notación con corchetes

objeto['propiedad'] — obligatoria cuando el nombre de la propiedad viene en una variable: objeto[nombreVariable].


Métodos: funciones dentro de un objeto

Cuando una propiedad de un objeto es una función, se llama método. Dentro de un método, this se refiere al propio objeto — así puedes acceder a sus otras propiedades:

metodos-objeto.js
1
Pulsa "Ejecutar" para ver el resultado.
💡 Consejo

this es uno de los conceptos que más confunde al empezar, porque su valor depende de cómo se llama a la función, no de dónde se definió. Por ahora, quédate con la regla simple: dentro de un método de objeto escrito así, this es ese objeto.


Scope: quién puede ver cada variable

El scope (ámbito) de una variable determina desde qué partes de tu código puedes acceder a ella. Hay tres niveles:

Global

Declarada fuera de cualquier función o bloque. Visible desde cualquier parte del archivo.

De función

Declarada dentro de una función. Solo visible dentro de esa función, ni siquiera fuera de ella.

De bloque

let y const declaradas dentro de { } (un if, un for...) solo existen dentro de ese bloque.

scope.js
1
Pulsa "Ejecutar" para ver el resultado.
⚠️ Por qué evitar var

Antes de let y const (que llegaron en 2015), la única forma de declarar variables era var — y var ignora el scope de bloque: una variable declarada con var dentro de un if "se escapa" fuera de él, lo que genera bugs difíciles de rastrear. Hoy en día, usa siempre let o const.

Comprueba lo que has aprendido

3 preguntas · sin nota, solo para afianzar lo de hoy

1. ¿Cuándo es obligatorio usar objeto['propiedad'] en lugar de objeto.propiedad?

2. Dentro de un método de objeto, ¿a qué se refiere this?

3. Una variable declarada con const dentro de un bloque if { ... }, ¿desde dónde es visible?

Síguenos IG @ X in