¿Puede haber alguna vez haber una diferencia entre:JavaScript literales de objetos: los nombres de propiedades como cadenas vs. "en bruto"
var x = {
hello: 'world'
};
y
var x = {
'hello': 'world'
};
?
Es decir, ¿bajo qué condiciones el hecho de dar un nombre de propiedad como una cadena tiene resultados diferentes a los dados como un nombre "crudo"? Por ejemplo, sé que var x = {}; x['@£$%'] = 'bling!';
es válido (ya que cualquier cadena puede ser una propiedad), pero [email protected]£$% = 'bling!'
no funcionará. Ni las palabras clave del lenguaje voluntad o palabras clave reservadas como nombres de propiedades (por lo var x = {for: 'good', class: 'y'};
no funcionarán.
Algo más?
Por ejemplo, ¿qué pasaría si
var hello = 'goodbye';
se define en el ejemplo anterior? O algo cosa, como
function hello() {
return 'goodbye';
}
?
¿Debo hacer siempre que mi propiedad nombre cadenas, solo para estar seguro?
tener un vistazo a [esta cuestión] (http://stackoverflow.com/questions/2348867/why-are-s ome-object-literal-properties-quoted-and-others-not) – Flash