JavaScript

Knowledge Base

JavaScript / ECMAScript

Datentyp Object

Beim Datentyp Object handelt es sich bei JavaScript um eine Sammlung von Eigenschaften (Properties) und einem Prototype (ein Prototype kann entweder null oder selbst ein Object sein). Handelt es sich bei den Eigenschaften um Funktionen, wird bei Objekten von Methoden gesprochen.

Ein Object kann u. a. über die Literal-Schreibweise erstellt werden - Beispiel:

 

<script>
    var a =
    {
        Vorname : "Peter",
        Nachname : "Müller"
    };
    document.writeln("a = " + a + "<br>");
    document.writeln("a.Vorname = " + a.Vorname + "<br>");

Ausgabe:

Zugriff auf Eigenschaften:

a = [object Object]
a.Vorname = Martin
a.Nachname = Schmidt
typeof(a) = object
Hallo Martin Schmidt

Der Zugriff auf Object-Eigenschaften kann über den Punkt-Operator erfolgen, wenn es sich um einen validen Bezeichner handelt (also z. B. keine Leerzeichen oder Sonderzeichen enthält).

Der Zugriff kann aber auch in mit Klammern [] wie bei einem Array erfolgen - hier wird dann der Name als string angegeben und kann auch Leerzeichen oder Sonderzeichen enthalten.

Im Falle eines Symbols als Eigenschaften-Namen ist nur die [] Notation möglich.

Beispiele:

<script>
    var s = Symbol();
 
    var a =
    {
        Vorname : "Peter",
        Nachname : "Müller",
        " Komische Eigenschaft^1 " : 5         
    };
    a[s] = "Symbolische Eigenschaft";
 
    document.writeln("a = " + a + "<br>");
    document.writeln("a.Vorname = " + a.Vorname + "<br>");
    document.writeln("a.Nachname = " + a.Nachname + "<br>");
    document.writeln("a[' Komische Eigenschaft^1 '] = " + a[' Komische Eigenschaft^1 '] + "<br>");
    document.writeln("a[s] = " + a[s] + "<br>");
    document.writeln("typeof(a) = " + typeof(a) + "<br>");
 
</script>  

Ausgabe:

a = [object Object]
a.Vorname = Peter
a.Nachname = Müller
a[' Komische Eigenschaft^1 '] = 5
a[s] = Symbolische Eigenschaft
typeof(a) = object

 


Eine Objekt Eigenschaft kann mit delete auch wieder gelöscht werden:

<script>
    delete a[s];
    document.writeln("a[s] = " + a[s] + "<br>");
</script>

Ausgabe:

a[s] = undefined

D. h. in diesem Fall gilt sie als nicht definiert (undefined).