Don P: Abfragen ob ein Objekt existiert

Beitrag lesen

Hallo,

Sofern die "einfache" Abfrage nicht geht (s. Cheatah), kann man mit typeof() abfragen: if(typeof(Tab)=="undefined) ...

Also doch lieber gleich diese Variante oder?

Noch einfacher ist:

Tab = this.Tab || [];

Denn Cheatah hat ja das entscheidende genannt:

dass Eigenschaften eines (existierenden) Objektes immer existieren und im Zweifel halt nur undefined sind.

und

dass (globale) Variablen immer Eigenschaften des window-Objektes sind.

Du musst also nur deine evtl. undefinierte Variable als Eigenschaft des gewünschten Objekts, z.B. des this-Objekts, notieren.

Der Default-Operator || sorgt dafür, dass, falls die Variable undefiniert ist, das neue Array oder was immer du haben willst, zugewiesen wird – [] ist synonym mit new Array(), {} mit new Object().

Eine andere Variante wäre noch:

try{!Tab}catch(e){if(e)this.Tab=[]}

Die ist aber dagegen recht umständlich.

Gruß, Don P