JavaScript 1.8.5 ist die Version von JavaScript, die in Firefox 4 integriert ist.
Neue Funktionen
| Function | Description |
|---|---|
Object.create |
Erstellt ein neues Objekt mit dem spezifizierten Prototype-Objekt und Eigenschaften. bug 492840 |
Object.defineProperty |
Fügt einem Objekt eine benannte Eigenschaft hinzu, welche durch einen übergebenen Descriptor beschrieben wurde. |
Object.defineProperties |
Fügt einem Objekt die benannten Eigenschaft hinzu, welche durch einen übergebenen Descriptor beschrieben wurden. |
Object.getOwnPropertyDescriptor |
Gibt einen Eigenschaften-Deskriptor einer Eigenschaft eines Objekts zurück. |
Object.keys |
Gibt ein Array mit allen aufzählbaren Eigenschaften eines Objekts zurück.bug 307791 |
Object.getOwnPropertyNames |
Gibt ein Array mit allen aufzählbaren und nicht-aufzählbaren Eigenschaften eines Objekts zurück.bug 518663 |
Object.preventExtensions |
Unterbindet die Erweiterung eines Objekts (verhindert das Hinzufügen neuer Eigenschaften). bug 492849 |
Object.isExtensible |
Stellt fest, ob ein Objekt erweiterbar ist. bug 492849 |
Object.seal |
Versiegelt ein Objekt - unterbindet die Erweiterung eines Objekts und die Konfiguration vorhandener Eigenschaften. bug 492845 |
Object.isSealed |
Stellt fest, ob ein Objekt versiegelt ist. bug 492845 |
Object.freeze |
Friert ein Objekt ein - unterbindet die Löschung eines Objekts und die Veränderung der Eigenschaften. bug 492844 |
Object.isFrozen |
Stellt fest, ob ein Objekt eingefroren ist. bug 492844 |
Array.isArray |
Überprüft, ob es sich bei einem Objekt um ein Array handelt. bug 510537 |
Date.toJSON |
Gibt einen JSON-Format-String für ein Date-Objekt zurück. |
Function.prototype.bind |
Erstellt eine neue Funktion, die sich beim Aufruf selbst im angegebenen Kontext aufruft. bug 429507 |
Neue Features von ECMAScript 5
get- undset-Operatoren erlauben numerische Werte und Strings als Bezeichner. bug 520696Function.apply()akzeptiert anstatt nur echten Arrays auch Array-ähnliche Objekte als Argument.- Unterstützung des strict-Mode
Array.toString()funktioniert nun auch mit nicht-Arrays, indem entweder das Ergebnis des Aufrufs der Methodejoin()(sofern vorhanden) zurückgeliefert wird oder dietoString()-Methode aufgerufen wird.
Weitere Arbeit an der Standardisierung
Einige nicht-standardisierte syntaktische Verfahren für die Definition von Gettern und Settern wurden entfernt; die Syntax von ECMAScript 5 wurde nicht verändert. Diese Verfahren waren sehr eigenartig und wurden kaum eingesetzt. Weitere Informationen stehen in diesem Blog-Artikel.
Neue Objekte
| Objekt | Beschreibung |
|---|---|
Proxy |
Unterstützt die Erstellung von Object- und Function-Proxies, welche Meta-Programmierung bei JavaScript ermöglichen. |
Änderungen an globalen Objekten
-
ISO 8601-Unterstützung für
Date -
Die Methode
parse()des Date-Objekts unterstüzt nun einfache Datum-Format-Strings nach dem ISO 8601-Standard. - Globale Objekte nur lesbar
-
Die globalen Objekte
NaN,Infinity, undundefinedwurden schreibgeschützt gemacht, wie von der ECMAScript 5 Spezifikation vorgegeben.
Weitere Änderungen
obj.__parent__undobj.__count__wurden obsolet. Die Gründe dafür sind hier aufgeführt: SpiderMonkey change du jour: the special __parent__ property has been removed bug 551529 & bug 552560.- Am Ende angehängte Kommas sind bei
JSON.parse()nicht mehr erlaubt.
API-Änderungen bei JavaScript (SpiderMonkey)
Die Funktion JS_NewString()wurde bei SpiderMonkey 1.8.5 entfernt. Stattdessen sollte nun die Funktion JS_NewStringCopyN() eingesetzt werden.
Mozilla Developer Network