L'accès de la valeur de la variable JavaScript par son nom?
Bonjour, il est possible d'accéder à la valeur d'une variable JavaScript par son nom? Exemple:
var MyVariable = "Value of variable";
function readValue(name) {
....
}
alert(readValue("MyVariable"));
Est-ce possible, de sorte que la sortie est "la Valeur de la variable"? Si oui, comment dois-je écrire cette fonction?
Grâce
Vérifier mon montage, s'il vous plaît.
OriginalL'auteur Torben | 2010-12-09
Vous devez vous connecter pour publier un commentaire.
Variables globales sont définies sur la
window
objet, de sorte que vous pouvez utiliser:ce n'est pas vrai. Toutes les variables déclarées dans la portée mondiale font partie de l'objet window.
pourquoi les gens de marque de ces réponses correctes? Il n'est correcte que si tout à l'OP est dans le contexte mondial. La bonne réponse soit besoin de l'ajout d'un "contexte" de l'objet ou de corriger une mauvaise conception.
OriginalL'auteur Spiny Norman
Oui, vous pouvez le faire comme ceci:
C'est un grand lien, Nick. Merci pour le partage!
..et la raison pour laquelle vous êtes à l'aide de la fenêtre[] est parce que Mavariable est dans la portée globale qui en fait une propriété de la
window
objet. (window
objet est l'objet global dans le côté client en JS)Pouvez-vous faire avec une variable déclarée dans un autre champ? Comme, si j'ai déclaré une variable dans une fonction
testFunc(){ var testVar }
pourrais-je accéder qu'avectestFunc["testVar"]
?OriginalL'auteur wsanville
Qui est tout au sujet ;o)
Ne serait pas la fonction doit être déclarée avant d'essayer d'alerte de la valeur retournée??
OriginalL'auteur Dr DIASOLUKA
OriginalL'auteur lyon819
Essayer ça ^_^
^mais la variable est déjà appelé. de sorte que son coffre-fort
Si vous-code de la chaîne, alors vous pouvez vérifier qu'il est en sécurité ... ou tout simplement supprimer les citations et utilisation du nom normalement. Si le nom de la variable est une chaîne de caractères, alors je suis très certain qu'il va venir de quelque part externes (AJAX en réponse, le contenu de base de données, etc.) qui ne peuvent pas être vérifiés pour la sécurité.
OriginalL'auteur Shaun Zyrille
J'ai essayé la fonction ci-dessous qui a été posté par Nicolas Gauthier par Débordement de Pile pour obtenir une fonction à partir d'une chaîne en le nommant, et lorsqu'il est utilisé avec le nom d'une variable, il retourne la valeur de la variable.
Il se débrouille avec les pointillés les noms de variables (valeurs d'un objet). Il fonctionne avec des variables globales et les variables déclarées avec var, mais PAS avec les variables définies avec "let", qui ne sont pas visibles dans les fonctions appelées.
OriginalL'auteur Chris Jeffries
OriginalL'auteur ssoward