Come posso fare riferimento a un oggetto in modo dinamico?
-
05-07-2019 - |
Domanda
In Javascript, ho un oggetto:
obj = { one: "foo", two: "bar" };
Ora, voglio farlo
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
Ma ovviamente non funziona. Quale sarebbe il modo corretto di fare riferimento a questo oggetto in modo dinamico?
Soluzione
risposta breve: obj[a[
risposta lunga: obj.field
è solo una scorciatoia per obj [" field "]
, per il caso speciale in cui la chiave è una stringa costante senza spazi, punti o altre cose brutte. nella tua domanda, la chiave non era una costante, quindi usa semplicemente la sintassi completa.
Altri suggerimenti
In questo modo:
obj[a]
Come nota a margine, le variabili globali sono associate alla finestra " " oggetto, quindi puoi farlo
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
Questo avviserà " ciao, ciao, ciao "
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow