Utiliser la variable pour le nom de la propriété dans JavaScript literal?

Je suis nouveau sur JavaScript et j'essaie de faire de l'expérience. J'ai une question. Je sais que nous pouvons créer de nouvelles propriétés dans des objets Javascript pendant l'exécution mais que cette propriété peut également être affectée à une valeur. Par exemple.

var value = "New value"; var table = new Object(); var newValue = table[value]; 

Maintenant, je sais que la table de valeurs possède une nouvelle propriété appelée "valeur". Mais cette «clé de valeur contient-elle l'information en tant que« Nouvelle valeur ». Ainsi, cela signifie-t-il maintenant que l'objet table est comme suit:

 table = { value:"New Value"; } 

Merci de votre aide à l'avance, les gars.

-Vik

Vous confondez en accédant à l'attribution.

 // Assigns a variable named 'value' with a value of 'New Value'. var value = "New value"; // Creates a variable named 'table' as a blank Object. var table = new Object(); // Alternatively - table = {}; // Attempts to access "New Value" from object "table" which returns undefined. var newValue = table[value]; 

Si vous souhaitez attribuer des propriétés à un objet, vous le faites comme ceci:

 // Assumes table is still an object. table['key'] = 'value'; // Note that I almost _always_ opt for the variable['key'] notation over // the variable.key notation because it allows you to use keys // that would otherwise not be valid as identifiers. table['Some Key'] = 'Some Value'; // This works. table.Some Key = 'Some Value'; // This does not. 

Plus tard, lorsque vous souhaitez récupérer cette valeur et la stocker dans une nouvelle variable, c'est à ce moment là que vous faites ceci:

 var newVariable = table['key']; 

Espérons que cela clarifie certains. Permettez-moi de savoir si je peux développer une partie de celui-ci.

non. Votre déclaration

var newValue = table[value];

Ne définit rien, et puisque, au moment où vous avez créé la table vous n'avez attribué aucune propriété, newValue sera undefined .

Si vous avez une variable de value affectée d'une valeur et que vous souhaitez attribuer cette valeur à la table sous la value la clé, vous voulez la faire

table['value'] = value;

Ou bien

table.value = value

Erm, non, je ne pense pas que vous l'avez bien compris.

Tout ce qui est fait est assigner undefined à newValue , car vous essayez d'accéder à la propriété " New Value " de la table , qui n'existe pas.

Ce que je pense que vous essayez de faire, c'est ceci:

 var value = "New value"; var table = {}; table.value = value;