109 votes

Des variables "variables" en Javascript?

Je sais qu'il est possible en PHP d'avoir des variables "variables". Par exemple $x = "variable"; $$x = "hello, world!"; echo $variable;"

Est-ce possible en javascript? Comment cela serait-il fait?

159voto

Felix Kling Points 247451

Eh bien, en quelque sorte. Si vous définissez la variable en tant que propriété d'un objet:

 var obj = {}
obj.foo = 42;

var bar = 'foo';
console.log(obj[bar]);
 

Fonctionne facilement pour les variables globales car elles sont définies en tant que propriétés de l'objet window .

42voto

Masterbuddha Points 304

Si vous êtes désespéré, faites-le soit en utilisant eval ():

 var data = "testVariable";
eval("var temp_" + data + "=123;");
alert(temp_testVariable);
 

Ou en utilisant l'objet window:

 var data = "testVariable";
window["temp_" + data] = 123;
alert(window["temp_" + data]);
 

http://www.hiteshagrawal.com/javascript/dynamic-variables-in-javascript

2voto

xfix Points 2890

Bien sûr que vous pouvez, mais ne le faites pas. Les variables doivent être globales.

 var killingFunction = 'alert'
var killMeNow = 'please'
var please = 'You have been killed!'
this[killingFunction](this[killMeNow])
 

2voto

lkdhruw Points 1
var vars = {};
var var_name = "str";
vars[var_name] = "working";
console.log(vars["str"]);

1voto

Joel Coehoorn Points 190579

Vous pourrez peut-être créer quelque chose en utilisant eval() , mais je ne peux pas imaginer que ce soit une bonne idée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X