JavaScript/Objekte/Array/length

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Hinweis

Dieser Artikel hat die Eigenschaft length der Konstruktorfunktion Array zum Gegenstand. Die Beschreibungen zu der Eigenschaft length bei Arrayinstanzen, also bei Objekten vom Typ Array, sind in diesem Abschnitt zu finden.


Der Wert der Eigenschaft length des Konstruktors Array ist 1. Dies entspricht der Anzahl der formalen Parameter der Funktion.


Syntax

Array.length


Attribute
Writable false
Enumerable false
Configurable true


Beschreibung[Bearbeiten]

Für den Konstruktor Array sind in der Spezifikation der Sprache drei verschiedene Beschreibungen angegeben, welche unterschiedliche Algorithmen für dessen Verhalten beinhalten. Diese betreffen den Aufruf ohne Argumente, den Aufruf mit genau einem Argument und den Aufruf mit einer unbestimmten Anzahl an Argumenten größer als Eins, wobei im ersten Fall kein formaler Parameter deklariert ist und im letzten Fall ein Restparameter. Lediglich die Beschreibung für den Aufruf mit genau einem Argument enthält einen formalen Parameter, der die Länge des zu erzeugenden Arrays bestimmt. Da Restparameter bei der Berechnung des Wertes der Eigenschaft length nicht berücksichtigt werden, ist der Wert der Eigenschaft length des Konstruktors Array also 1.


Beispiel
const length = Array.length;

console.info(typeof length); // number

console.info(length); // 1


Die Länge der Funktion Array wird dabei, wie es bei dieser Eigenschaft von Funktionsobjekten üblich ist, als numerischer Wert hinterlegt und nicht als Stringrepräsentation. Darüber hinaus ist die Eigenschaft schreibgeschützt, das heißt, der Wert ihres Attributes Writable ist false. Ihr Wert kann also nicht durch einfache Zuweisung (Assignment) verändert werden. Der Versuch dies zu tun würde im Strict Mode der Sprache eine Ausnahme produzieren. Da aber das Attribut Configurable der Eigenschaft den Wert true hat, kann der Eigenschaftswert durch explizite Definition verändert werden, was unter anderem mit der Methode defineProperty des Konstruktors Object möglich ist.

Weblinks[Bearbeiten]