2009-09-17 20 views
9

De esta manera podría tener una función que diga whatever_way_you_do_this = something. es posible? Básicamente, podría decirle a una función qué variable quiero establecer dándole una cadena que contenga el nombre de la variable.¿Hay alguna manera de acceder a una variable de JavaScript utilizando una cadena que contiene el nombre de la variable?

Gracias

+0

No hay un duplicado de "Obtener variable global dinámicamente por nombre cadena en JavaScript", esta pregunta no dice nada acerca de la variable que es global. Y eso importa. –

Respuesta

20

dado:

var x = { 
    myproperty: 'my value' 
}; 

Se puede acceder al valor de:

var value = x['myproperty']; 

Si y Está buscando una variable global, entonces debería verificar su contenedor (window);

var value = window['x']['myproperty']; 
3

Si es una variable global llamada myVar, puede utilizar:

window["myVar"] 
+1

Para elaborar: función setGlobal (varName, varValue) {ventana [varName] = varValue; } –

6

Puede utilizar

eval(variableString); 

proceder con cautela ya que muchos no recomendamos el uso de eval()

+0

Respuesta más versátil. La mejor respuesta actual solo puede acceder a las propiedades. Esto puede acceder tanto a las variables planas como a las propiedades 'eval (" x.myproperty ");'. Por curiosidad, ¿por qué no se recomienda eval? –

+1

@BryantJackson seguridad es una gran razón, realmente no desea crear la posibilidad de ejecución de código arbitrario en una máquina de producción – nickford

2

La función eval puede acceder a una variable de una cadena que contiene el nombre de la variable.

eval('baseVariableName'+index) = 'something'; 
Cuestiones relacionadas