JavaScript/Objekte/Array/length
Der Wert der Eigenschaft length des Konstruktors Array ist 1. Dies entspricht der Anzahl der formalen Parameter der Funktion.
Syntax
Array.length
| Writable | false |
| Enumerable | false |
| Configurable | true |
Beschreibung
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.
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
- ECMAScript 2017 (7th Edition, ECMA-262 Draft): Standard Built-in Objects
- ECMAScript 2017 (7th Edition, ECMA-262 Draft): The Array Constructor
- ECMAScript 2015 (6th Edition, ECMA-262): The Array Constructor