ciertamente en este caso los pares de llaves producen un objeto literal. sin embargo, hay que hacer una aclaración muy importante. hay ocaciones en que las llaves no generan un objeto. en estos casos, las llaves son un bloque de sentencias (
block statement). es importante aprender a distinguirlos porque puede causar quebradero de cabeza al intentar depurar el codigo. veamos lo siguiente...
este ejemplo no produce un objeto, es simplemente un bloque de instrucciones. ahora, lo interesante es que tiene una estructura similar a los objetos literales. veamos el proximo ejemplo.
Código:
{
token:"string",
prop:true
}
este ejemplo produce error porque javascript no lo considera como objeto literal, lo interpreta como un bloque de instrucciones y la sintaxis esta mal. entonces, ¿por qué el primero -el cual parece ser un objeto literal- no produce error? en el primer codigo
token: es un
label seguido de un valor literal. en teoria, el bloque solamente contiene una sola instruccion. en el segundo codigo la sintaxis esta mal escrita.
para que ambos ejemplos puedan ser tratado como objeto literal es necesario un contenedor, puede ser una variable o incluso un par de parentesis.