Si prega di fare riferimento al codice qui sotto, quando I "commento in" una delle righe commentate, provoca l'errore (in IE) di "':' previsto". Quindi la mia conclusione è corretta, cioè questa incapacità di fornire un riferimento a un valore dell'oggetto, come una chiave oggetto in una stringa letterale; questo è strettamente un problema di interpretazione/parsing? È un candidato per una "parte" terribile (o almeno "cattiva") di Javascript, al contrario delle "buone parti" di Crockford?Questa restrizione letterale dell'oggetto JavaScript è strettamente dovuta all'analisi?
<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>
BTW 'var = key_one keys.ONE; var obj2 = {key_one: 'value1'}; 'non funziona come previsto. La proprietà di 'obj2' sarà' key_one' e non il valore di 'key.ONE' quindi non' one'. – RoToRa
Si noti che sebbene l'ultimo esempio funzioni, crea un oggetto con la proprietà 'key_one', non la proprietà' keys.One'. La variabile 'key_one' è irrilevante per l'oggetto letterale nella riga successiva. – Guffa
capito .... che potrebbe essere fonte di confusione .... dovrebbe o non consentire tutte le stringhe "non quotate", o de-referenziare i riferimenti, qualunque essi siano –