S'il vous plaît se référer au code ci-dessous, quand je "commente" l'une des lignes commentées, il provoque l'erreur (dans IE) de "':' attendu". Donc, ma conclusion est correcte, que cette incapacité à fournir une référence à une valeur d'objet, comme une clé d'objet dans un littéral de chaîne; Est-ce strictement un problème d'interprétation/d'analyse? Est-ce un candidat pour une partie horrible (ou au moins "mauvaise") de Javascript, contrairement aux "bonnes parties" de Crockford?Cette restriction de clé littérale d'objet Javascript est-elle strictement due à l'analyse?
<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'}; 'ne fonctionne pas comme prévu. La propriété 'obj2' sera' key_one' et non la valeur de 'key.ONE' donc pas' one'. – RoToRa
Notez que bien que le dernier exemple fonctionne, il crée un objet avec la propriété 'key_one', pas la propriété' keys.One'. La variable 'key_one' n'est pas pertinente pour l'objet littéral dans la ligne suivante. – Guffa
l'a ... .... qui pourrait prêter à confusion ... il devrait soit interdire toutes les chaînes "non-cotées", soit dé-référencer les références, quelles qu'elles soient –