Consulte el código siguiente, cuando "comento" en cualquiera de las líneas comentadas, provoca el error (en IE) de "':' esperado '. Entonces, mi conclusión es correcta, que esta incapacidad para proporcionar una referencia a un valor de objeto, como una clave de objeto en un literal de cadena; ¿Es estrictamente un problema de interpretación/análisis? ¿Es este un candidato para una "parte" horrible (o al menos "mala") de Javascript, en contraste con las "buenas partes" de Crockford?¿Es este objeto Javascript restricción literal de clave estrictamente debido al análisis?
<script>
var keys = {'ONE': 'one'};
//causes error:
//var obj1 = {keys.ONE: 'value1'};
//var obj1 = {keys['ONE']: 'value1'};
//works
var obj1 = {};
obj1[keys.ONE] = 'value1';
//also works
var key_one = keys.ONE;
var obj2 = {key_one: 'value1'};
</script>
Por cierto 'var = key_one keys.ONE; var obj2 = {key_one: 'value1'}; 'no funciona como espera que lo haga. La propiedad 'obj2' será' key_one' y no el valor de 'key.ONE', por lo tanto, no' one'. – RoToRa
Tenga en cuenta que aunque el último ejemplo funciona, crea un objeto con la propiedad 'key_one', no con la propiedad' keys.One'. La variable 'key_one' es irrelevante para el objeto literal en la siguiente línea. – Guffa
lo obtuve .... eso podría ser confuso ... debería deshabilitar todas las cadenas "sin comillas" o eliminar las referencias, sean lo que sean –