Javascript eval ReferenceError: nicht definiert
Muss ich dynamische erstellen einer Variablen aus dem Wert einer Variablen von einem argument bin ich ziehen in ein Skript. Aber ich will zuerst zu prüfen, ob es bereits vorhanden ist, damit ich nicht überschreiben, wenn es bereits gesetzt ist.
Bin ich Nutzung von eval zu erweitern wird der Wert der Variablen-und tag-auf eine variable suffix, aber egal, was ich verwenden, um zu überprüfen, für den unbestimmten, ich bin immer ein Referenz-Fehler, die auf der Kontrolle.
Unten ist der einfache code snippet -
chkUser = args[1];
if(typeof eval(chkUser+"lastseen")==="undefined") ;
Habe ich auch versucht, setzen die eval in Klammern und setzen undefiniert in '' und zog Sie komplett aus und schalten typeof, um den JavaScript-standard-undefiniert als solche
if( eval(chkUser+"lastseen")=== undefined) ;
aber ich bekomme immer ReferenceError: robertlastseen ist nicht definiert oder was auch immer chkUser erweitert heraus.
- Führen Sie die
typeof
Aufruf innerhalb dereval()
.if(eval('typeof '+chkUser+'lastseen') === "undefined")
- Haben Sie sich überlegt speichern diese als Eigenschaften einer
Object
anstatt als separate Variablen? Klammer-notation ist in der Regel einfacher alseval()
und nicht werfen ReferenceErrors. Oder, geben Sie eine Benutzer-Objekt, anstatt der variable als Präfixargs[1]
--if (typeof args[1].lastseen === 'undefined')
. I need to dynamical create a variable off the value of a variable
- Warum?if (window[args[1]+"lastseen"]) ...
- zum annehmen von Antworten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur ein gues, aber es scheint, dass die Variable nicht definiert ist, bevor du eval es.
versuchen, diese Fiddle.
Es funktioniert gut für mich.
Versuchen Sie zu fest die Variablen, bevor du eval es so:
Dann sollte man in der Lage sein, um den code Debuggen.
wenn Sie nur wollen, um zu testen, ob diese Variable deklariert ist, versuchen Sie dies: