Veo esto todo el tiempo: literales de objetos declarados de manera que algunas teclas están rodeadas de comillas y otras no. Un ejemplo de jQuery 1.4.2:¿Por qué se citan algunas propiedades de objeto literal y otras no?
jQuery.props = {
"for": "htmlFor",
"class": "className",
readonly: "readOnly",
maxlength: "maxLength",
cellspacing: "cellSpacing",
rowspan: "rowSpan",
colspan: "colSpan",
tabindex: "tabIndex",
usemap: "useMap",
frameborder: "frameBorder"
};
¿Cuál es el significado de envolver las dos primeras claves de propiedad (for
y class
) con citas, dejando a los demás en cotizaciones menos? ¿Hay alguna diferencia en absoluto?
He estado hurgando en el ECMAScript 5 specification; todo lo que he podido encontrar es [Nota 6 de la Sección 15.12.3, énfasis mío]:
NOTA 6 Un objeto se representa como una llave izquierda de apertura seguida de cero o más propiedades , separado con comas, cerrado con una llave derecha. Una propiedad es una cadena entrecomillada que representa la clave o el nombre de propiedad, dos puntos, y luego el valor de propiedad de string . Se representa una matriz como un corchete izquierdo de apertura seguido de cero o más valores, separados con comas, cerrado con un corchete derecho.
Sin embargo, esto se refiere sólo a la stringification de JSON.
Véase también [? ¿Cuál es la diferencia entre las teclas de objeto con comillas y sin comillas] (http://stackoverflow.com/questions/4348478/what-is-the-difference-between-object-keys-with-quotes-and-without-quotes) – Bergi
¿Cómo puede ser esto un duplicado de una pregunta que se hizo diez meses después? Ustedes lo entendieron al revés. – raven
@raven: La respuesta a la otra pregunta es mejor, y aparentemente no deberían fusionarse. Mi bandera fue rechazada. : P – Ryan