Für die Objekterstellung und die Verwendung von Literalen und neuen Operatoren im ECMAScript 5 -Standard kann auch Object.create () verwendet werden. Die Funktion von Object.create () akzeptiert zwei Objekte als Parameter: Das erste Objekt ist erforderlich, um den Prototyp des erstellten Objekts darzustellen; Das zweite Objekt ist optional, um die verschiedenen Eigenschaften des erstellten Objekts (z. B. beschreibbar, aufgezählt) zu definieren.
Die Codekopie lautet wie folgt:
var o = Object.create ({x: 1, y: 7});
console.log (o); // Objekt {x = 1, y = 7}
console.log (o .__ Proto __); // Objekt {x = 1, y = 7}
Das Aufrufen von Object.create () als erster Parameter generiert ein Objekt ohne Prototyp, das keine grundlegenden Objekteigenschaften aufweist (z. B. da keine toString () -Methode vorhanden ist und der + Operator für dieses Objekt eine Ausnahme verwendet):
Die Codekopie lautet wie folgt:
var o2 = Object.create (null);
console.log ("es ist" + o2); // Typ Fehler, O2 kann nicht in primitiven Typ konvertiert werden
Für Browser, die nur den ECMascript 3 -Standard unterstützen, können Sie die Methode von Douglas Crockford verwenden, um das Objekt auszuführen.
Die Codekopie lautet wie folgt:
if (typeof Object.create! == 'Funktion') {
Object.create = Funktion (o) {
Funktion f () {}
F.Prototyp = o;
Neue f () zurückgeben;
};
}
NewObject = Object.create (OldObject);