Variables "variables" en JavaScript
Je sais qu'il est possible en PHP d'avoir des variables "variables". Par example,
$x = "variable";
$$x = "Hello, World!";
echo $variable; // Displays "Hello, World!"
Est-il possible de faire référence à une variable par son nom en tant que chaîne en JavaScript ? Comment serait-ce fait?
Solution du problème
tl;dr : N'utilisez paseval
!
Il n'y a pas de solution unique pour cela. Il est possible d'accéder dynamiquement à certaines variables globales via window
, mais cela ne fonctionne pas pour les variables locales à une fonction. Les variables globales qui ne deviennent pas une propriété de window
sont des variables définies avec let
et const
, et class
es.
Il y a presque toujours une meilleure solution que d'utiliser des variables variables ! Au lieu de cela, vous devriez regarder les structures de données et choisir celle qui convient à votre problème.
Si vous avez un ensemble fixe de noms, tels que
// BAD - DON'T DO THIS!!!
var foo = 42;
var bar = 21;
var key = 'foo';
console.log(eval(key));
Commentaires
Enregistrer un commentaire