Looking for javascript Answers? Try Ask4KnowledgeBase
Looking for javascript Keywords? Try Ask4Keywords

JavaScript Noms de propriété dynamiques / variables


Exemple

Parfois, le nom de la propriété doit être stocké dans une variable. Dans cet exemple, nous demandons à l'utilisateur quel mot doit être recherché, puis fournissons le résultat à partir d'un objet que j'ai nommé dictionary .

var dictionary = {
    lettuce: 'a veggie',
    banana: 'a fruit',
    tomato: 'it depends on who you ask',
    apple: 'a fruit',
    Apple: 'Steve Jobs rocks!' // properties are case-sensitive
}

var word = prompt('What word would you like to look up today?')
var definition = dictionary[word]
alert(word + '\n\n' + definition)

Notez comment nous utilisons la notation [] pour examiner la variable nommée word ; si nous devions utiliser le traditionnel . la notation, alors elle prendrait littéralement la valeur, d'où:

console.log(dictionary.word)  // doesn't work because word is taken literally and dictionary has no field named `word`
console.log(dictionary.apple) // it works! because apple is taken literally

console.log(dictionary[word]) // it works! because word is a variable, and the user perfectly typed in one of the words from our dictionary when prompted
console.log(dictionary[apple]) // error! apple is not defined (as a variable)

Vous pouvez également écrire des valeurs littérales avec la notation [] en remplaçant le word variable par une chaîne 'apple' . Voir [Propriétés avec caractères spéciaux ou mots réservés] exemple.


Vous pouvez également définir des propriétés dynamiques avec la syntaxe de parenthèse:

var property="test";
var obj={
 [property]=1;
};

console.log(obj.test);//1

Il fait la même chose que:

var property="test";
var obj={};
obj[property]=1;