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:
objeto.propiedad — la más habitual, cuando sabes el nombre exacto de antemano.
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:
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:
Declarada fuera de cualquier función o bloque. Visible desde cualquier parte del archivo.
Declarada dentro de una función. Solo visible dentro de esa función, ni siquiera fuera de ella.
let y const declaradas dentro de { } (un if, un for...) solo existen dentro de ese bloque.
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
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?