Pregunta

En Javascript, tengo un objeto:

obj = { one: "foo", two: "bar" };

Ahora, quiero hacer esto

var a = 'two';
if(confirm('Do you want One'))
{
  a = 'one';
}

alert(obj.a);

Pero, por supuesto, no funciona. ¿Cuál sería la forma correcta de hacer referencia a este objeto de forma dinámica?

¿Fue útil?

Solución

respuesta corta: obj[afont>

respuesta larga: obj.field es solo una abreviatura de obj [" field "] , para el caso especial donde la clave es una cadena constante sin espacios, puntos u otras cosas desagradables. en su pregunta, la clave no era una constante, así que simplemente use la sintaxis completa.

Otros consejos

Me gusta esto:

obj[a]

Como nota al margen, las variables globales se adjuntan a la ventana " objeto, para que puedas hacer

var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);

Esto alertará '' hola, hola, hola ''

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top