Heim  >  Artikel  >  Web-Frontend  >  Wie funktioniert der neue Operator in js?

Wie funktioniert der neue Operator in js?

王林
王林Original
2024-02-19 11:17:051134Durchsuche

Wie funktioniert der neue Operator in js?

Was ist das Funktionsprinzip des neuen Operators in js? Es werden spezifische Codebeispiele benötigt.

Der neue Operator in js ist das Schlüsselwort, das zum Erstellen von Objekten verwendet wird. Seine Funktion besteht darin, ein neues Instanzobjekt basierend auf dem angegebenen Konstruktor zu erstellen und einen Verweis auf das Objekt zurückzugeben. Bei Verwendung des neuen Operators werden tatsächlich die folgenden Schritte ausgeführt:

  1. Erstellen Sie ein neues leeres Objekt.
  2. Richten Sie den Prototyp des leeren Objekts auf das Prototypobjekt des Konstruktors.
  3. Weisen Sie den Bereich des Konstruktors zu Objekt (dies zeigt also auf das neue Objekt);
  4. Führen Sie den Code im Konstruktor aus und fügen Sie Eigenschaften und Methoden zum neuen Objekt hinzu.
  5. Wenn der Konstruktor ein Objekt zurückgibt, geben Sie andernfalls das neue Objekt zurück.

Das Folgende ist ein einfaches Beispiel, um die Funktionsweise des neuen Operators zu veranschaulichen:

// 定义一个构造函数
function Person(name, age) {
  this.name = name;
  this.age = age;
}

// 使用new操作符创建一个实例对象
var person1 = new Person('Tom', 18);

// 输出实例对象的属性值
console.log(person1.name);  // 输出 'Tom'
console.log(person1.age);   // 输出 18

Im obigen Code definieren wir einen Konstruktor namens Person. Der Konstruktor akzeptiert zwei Parameter, Name und Alter, und verwendet sie als Attribute des Instanzobjekts person1.

Wenn Sie den neuen Operator zum Erstellen einer Person1-Instanz verwenden, wird zuerst ein leeres Objekt erstellt und dann wird der Prototyp des leeren Objekts auf das Prototypobjekt des Konstruktors Person verwiesen. Als nächstes wird dem leeren Objekt der Gültigkeitsbereich des Konstruktors zugewiesen, sodass über diesen innerhalb des Konstruktors auf das leere Objekt zugegriffen werden kann. Abschließend wird der Code im Konstruktor ausgeführt und den Eigenschaften des neuen Objekts Name und Alter zugewiesen.

Daher verfügt das über den neuen Operator erstellte Objekt person1 über die Attribute Name und Alter, die im Konstruktor Person definiert sind, und auf diese Attribute kann über den Punktoperator zugegriffen werden.

Es ist zu beachten, dass ein Objekt innerhalb des Konstruktors nicht explizit zurückgegeben wird. Wenn der Konstruktor ein Objekt zurückgibt, ist die vom neuen Operator erstellte Instanz das zurückgegebene Objekt und nicht das neu erstellte Objekt. Zum Beispiel:

// 定义一个构造函数
function Person(name, age) {
  this.name = name;
  this.age = age;

  // 错误示例:返回一个对象
  return {
    name: 'Error',
    age: -1
  };
}

// 使用new操作符创建一个实例对象
var person1 = new Person('Tom', 18);

// 此时person1实际上是一个普通的对象,而不是Person的实例
console.log(person1 instanceof Person);  // 输出 false
console.log(person1.name);  // 输出 'Error'
console.log(person1.age);   // 输出 -1

Im obigen Beispiel gibt der Konstruktor Person explizit ein Objekt zurück, sodass person1 eigentlich keine Instanz von Person, sondern ein gewöhnliches Objekt ist.

Zusammenfassend lässt sich sagen, dass der neue Operator verwendet wird, um ein neues Instanzobjekt zu erstellen und die Eigenschaften des Objekts im Konstruktor zu initialisieren. Das durch den neuen Operator erstellte Instanzobjekt erbt das Prototypobjekt des Konstruktors und kann auf die im Konstruktor definierten Eigenschaften und Methoden zugreifen.

Das obige ist der detaillierte Inhalt vonWie funktioniert der neue Operator in js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn