new - einer der grundlegendsten Operatoren in der Programmiersprache JavaScript. Es wird verwendet, um eine neue Instanz eines Objekts basierend auf einem bestimmten Konstruktor zu erstellen. Wie passiert das? Lass uns das herausfinden.
Wenn der Operator new wird aufgerufen, erstellt es zuerst ein neues leeres Objekt. Dann bindet es dieses Objekt an die innere Eigenschaft [[Prototype]] konstruktorfunktionen. Mit anderen Worten, das erstellte Objekt hat Zugriff auf alle Methoden und Eigenschaften, die im Konstruktorprototyp definiert sind.
Weiter der Operator new ruft die Konstruktorfunktion mit den übergebenen Argumenten auf. Dadurch können Sie ein neues Objekt mit verschiedenen Werten initialisieren. Innerhalb der Konstruktorfunktion ist das Schlüsselwort this verweist auf das erstellte Objekt.
Definieren eines neuen Objekts in JavaScript
Mit new können wir eine Konstruktorfunktion aufrufen, die die Eigenschaften und Methoden eines Objekts definiert. Diese Funktion wird verwendet, um ein neues Objekt mit dem Operator new zu erstellen. Zum Beispiel:
function Person(name, age) var john = new Person('John', 30);
In diesem Beispiel erstellen wir ein neues john-Objekt basierend auf der Person-Klasse mit dem Operator new . Wir übergeben die Werte für Name und Alter an den Konstruktor und initialisieren die Eigenschaften des Objekts.
Mit dem Operator new können Sie auch Eigenschaften und Methoden von anderen Klassen oder Objekten erben. Wenn wir beispielsweise eine Basisklasse Animal und eine Erbenklasse Dog haben, können wir ein neues dog-Objekt basierend auf der Klasse Dog mit dem Operator new erstellen, und dieses Objekt hat alle Eigenschaften und Methoden sowohl der Klasse Animal als auch der Klasse Dog .
Mit dem Operator new können wir also neue Objekte basierend auf bestimmten Klassen oder Konstruktoren erstellen, indem wir ihre Eigenschaften und Methoden initialisieren. Dies ist ein nützliches Werkzeug in JavaScript zum Erstellen und Verwalten von Objekten in einem Programm.
Erstellen eines neuen Objekts über ein Literal
In JavaScript können Objekte mit dem Operator <> erstellt werden, der als Objektliteral bezeichnet wird. Ein Objektliteral ist eine Sammlung von Schlüssel: Wert-Paaren, die durch Kommas getrennt sind. Hier ist ein Beispiel für das Erstellen eines neuen Objekts durch ein Literal:
const person = ;
In diesem Beispiel haben wir ein Person-Objekt mit drei Eigenschaften erstellt: name , age und city . Die Eigenschaftswerte werden nach dem Doppelpunkt angegeben.
Sie können die Punktnotation verwenden, um auf die Eigenschaften eines Objekts zuzugreifen. Um beispielsweise den Wert der name-Eigenschaft des Person-Objekts zu erhalten, können wir schreiben:
console.log(person.name); // Выведет "John"
Sie können auch eckige Klammern verwenden, um auf die Eigenschaften eines Objekts zuzugreifen:
console.log(person["name"]); // Выведет "John"
Mit einem Objektliteral können Sie Objekte sofort erstellen und initialisieren. Dies ist praktisch, wenn wir mehrere Objekte mit den gleichen Eigenschaften, aber unterschiedlichen Werten erstellen müssen. Zum Beispiel:
const car1 = ;const car2 = ;
In diesem Beispiel haben wir zwei Objekte erstellt: car1 und car2 , mit den gleichen Marken- und Farbeigenschaften , aber unterschiedlichen Werten.
Die Verwendung eines Objektliterals ermöglicht es uns daher, neue Objekte mit bestimmten Eigenschaften und Werten in kürzester und verständlicher Form zu erstellen.
Verwenden des Konstruktors zum Erstellen eines Objekts
Ein Konstruktor in JavaScript ist eine spezielle Methode, die aufgerufen wird, wenn ein neues Objekt erstellt wird. Der Konstruktor definiert den Anfangszustand eines Objekts und kann Parameter akzeptieren, um seine Eigenschaften zu initialisieren.
Verwenden Sie das Schlüsselwort, um ein Objekt mithilfe des Konstruktors zu erstellen new. Es erstellt eine neue Instanz des Objekts, indem es den Konstruktor aufruft und einen Verweis auf dieses Objekt zurückgibt.
Beispiel für die Verwendung eines Konstruktors:
function Person(name, age) var person1 = new Person("John", 25);var person2 = new Person("Jane", 30);
In diesem Beispiel wird ein Konstruktor definiert Person, die zwei Parameter akzeptiert - name (name) und age (Altersstufe). Innerhalb des Konstruktors wird das Schlüsselwort verwendet this um den Eigenschaften eines Objekts Werte zuzuweisen.
Nachdem Sie den Konstruktor definiert haben, können wir neue Objekte mit dem Schlüsselwort erstellen new. Der Konstruktor wird aufgerufen und ein Verweis auf das neue Objekt wird zurückgegeben, das dann der Variablen zugewiesen wird.
Im obigen Beispiel werden zwei Objekte erstellt - person1 und person2 - mit unterschiedlichen Eigenschaftswerten. Jedes Objekt verfügt über eine eigene Kopie der im Konstruktor definierten Eigenschaften.
Wenn Sie einen Konstruktor zum Erstellen eines Objekts verwenden, können Sie doppelten Code reduzieren und die Initialisierung von Objekten vereinfachen.
Zuweisen eines Werts über den Wert eines anderen Objekts
Der new-Operator in JavaScript erstellt nicht nur ein neues Objekt, sondern kann auch über den Wert eines anderen Objekts einen Wert zuweisen.
Dazu können Sie das Design verwenden:
| Syntax | Die Beschreibung |
|---|---|
| var newObj = new Object(oldObj); | Erstellt ein neues newObj-Objekt und weist ihm Werte aus dem oldObj-Objekt zu. |
Wenn dieser Wert über ein anderes Objekt zugewiesen wird, wird eine Kopie des oldObj-Objekts erstellt. Dies bedeutet, dass Änderungen am neuen newObj-Objekt keine Auswirkungen auf das oldObj- Objekt haben.
Diese Methode kann nützlich sein, wenn Sie ein Objekt erstellen möchten, das Eigenschaften oder Methoden von einem anderen Objekt erbt, das ursprüngliche Objekt jedoch nicht ändern muss.
Hier ist ein Anwendungsbeispiel:
var person = ;var employee = new Object(person);employee.department = "IT";console.log(person); // console.log(employee); //
In diesem Beispiel wird ein employee-Objekt mit dem Operator new erstellt und es werden Werte aus dem Person-Objekt zugewiesen. Anschließend wird dem employee-Objekt eine neue department-Eigenschaft hinzugefügt. Das Person-Objekt bleibt jedoch unverändert.
Mit dem new-Operator können Sie einen Wert bequem und effizient über den Wert eines anderen Objekts in JavaScript zuweisen.
Klonen eines Objekts
In JavaScript wird der Operator new verwendet, um ein Objekt zu klonen. Der Operator new erstellt ein neues Objekt basierend auf dem angegebenen Objektkonstruktor. Ein Konstruktor ist eine Funktion, die beim Erstellen eines neuen Objekts aufgerufen wird.
Der Prozess zum Klonen eines Objekts mit dem new-Operator sieht folgendermaßen aus:
| Schritt | Die Beschreibung |
|---|---|
| 1 | Erstellen eines neuen Objekts mit dem Operator new . |
| 2 | Legt die Eigenschaften und Methoden des neuen Objekts basierend auf dem ursprünglichen Objekt fest. |
| 3 | Gibt ein neues geklontes Objekt zurück. |
Beispiel für das Klonen eines Objekts:
function Person(name, age) // Создание нового объекта на основе исходного объектаvar person1 = new Person('John', 30);var person2 = new Person(person1.name, person1.age);console.log(person1); // < name: 'John', age: 30 >console.log(person2); //
Im folgenden Beispiel wird ein Person-Objekt mit zwei Eigenschaften erstellt: name und age . Anschließend wird ein neues person2-Objekt basierend auf den Eigenschaften des ursprünglichen person1-Objekts erstellt. Beide Objekte enthalten die gleichen Eigenschaftswerte.
Durch das Klonen eines Objekts können Sie unabhängige Kopien erstellen, die einzeln verwendet werden können, ohne das ursprüngliche Objekt zu ändern. Dies ist nützlich, wenn Sie mit mehreren ähnlichen Objekten arbeiten müssen.
Erstellen eines neuen Objekts mithilfe von Object.create()
Ein Prototyp ist ein Objekt, das als Vorlage zum Erstellen neuer Objekte verwendet wird. Wenn wir ein neues Objekt mit Object erstellen.create(), Eigenschaften und Methoden des Prototypobjekts sind für das neue Objekt verfügbar.
Ein Beispiel für die Verwendung von Object.create() sieht folgendermaßen aus:
const prototypeObject = >;const newObject = Object.create(prototypeObject);console.log(newObject.name); // 'Примерный объект'newObject.sayHello(); // 'Привет, я новый объект!'
Im obigen Beispiel erstellen wir ein neues newObject mit prototypeObject als Prototyp. Die name-Eigenschaft und die sayHello-Methode sind für das neue Objekt verfügbar und können verwendet werden.
Die Object-Methode.mit create() können wir auch Objektvererbungen erstellen, was einer der Hauptvorteile dieser Methode ist. Wir können Prototypketten erstellen, wenn ein Objekt ein Prototyp für ein anderes Objekt ist und das zweite Objekt ein Prototyp für ein drittes Objekt ist und so weiter.
Verwenden von Object.create() kann in Fällen nützlich sein, in denen Sie ein neues Objekt basierend auf einem bereits vorhandenen Prototyp erstellen und einige seiner Eigenschaften oder Methoden hinzufügen oder ändern möchten.
Es ist wichtig zu beachten, dass Object.create() wurde dem ECMAScript 5-Standard hinzugefügt und wird möglicherweise nicht von älteren Browserversionen unterstützt. Daher sollten Sie vor der Verwendung die Unterstützung für die Zielbrowser überprüfen oder bei Bedarf Polyphile verwenden.
Prototypvererbung zum Erstellen eines neuen Objekts
Wenn Sie ein neues Objekt mit einem Schlüsselwort erstellen new. JavaScript sucht zuerst im Objekt selbst und dann im Prototyp nach den gewünschten Eigenschaften und Methoden. Wenn eine Eigenschaft oder Methode im Objekt nicht gefunden wird, sucht JavaScript im Prototyp und so weiter nach der Prototypkette.
Die prototypische Vererbung in JavaScript unterscheidet sich von der klassischen Vererbung, die in einigen anderen Programmiersprachen verwendet wird. Anstatt Klassen und Instanzen zu erstellen, erstellen wir in JavaScript Objekte und verwenden sie als Prototypen, um neue Objekte zu erstellen.
Die Prototypvererbung vermeidet Codeduplizierung und reduziert die Komplexität des Programms, da Eigenschaften und Methoden nur an einer Stelle beschrieben werden können - im Objektprototyp.
Zum Beispiel haben wir ein Person- Objekt mit den Eigenschaften name und age . Wir können ein neues john-Objekt basierend auf dem Person-Objekt wie folgt erstellen:
const Person = ;const john = Object.create(Person);
In diesem Beispiel erstellen wir ein neues john-Objekt mit der Object-Funktion.create . Als Argument übergeben wir ein Person- Objekt, das als Prototyp für das neue Objekt verwendet wird.
Wenn wir versuchen, den Wert der name-Eigenschaft von einem john-Objekt abzurufen, sucht JavaScript zuerst im john-Objekt selbst und dann im Prototyp - Objekt Person nach ihm. Wenn die Eigenschaft nicht gefunden wird, gibt JavaScript den Wert undefined zurück.