JavaScript ist eine prototypbasierte Programmiersprache. In JavaScript verfügt jedes Objekt über ein Prototypobjekt. Wir können über den JavaScript-Prototypkettenmechanismus auf die Eigenschaften und Methoden des übergeordneten Objekts zugreifen und diese erben, wodurch eine Wiederverwendung und Optimierung des Codes erreicht wird.
Der folgende Artikel befasst sich mit dem Einrichten der Prototypkette in JavaScript. Er stellt hauptsächlich vor, was die Prototypkette von JavaScript ist, wie Prototypobjekte erstellt werden und wie Instanzobjekte erstellt werden.
1. JavaScript-Prototypkette
JavaScript-Prototypkette bedeutet, dass jedes Objekt ein Prototypobjekt (Prototyp) hat, das Eigenschaften und Methoden enthält. Beim Zugriff auf die Eigenschaften und Methoden eines Objekts prüft JavaScript zunächst, ob die Eigenschaft oder Methode im Objekt selbst vorhanden ist. Wenn sie nicht vorhanden ist, durchsucht es die Prototypenkette des Objekts, bis es die Eigenschaft oder Methode findet. Wenn die Eigenschaft oder Methode nicht in der gesamten Prototypenkette gefunden wird, wird undefiniert zurückgegeben.
Wir können den Prototypkettenmechanismus von JavaScript verwenden, um Objekteigenschaften und -methoden gemeinsam zu nutzen und so eine Wiederverwendung und Optimierung des Codes zu erreichen. Normalerweise verwenden wir bei der Implementierung der Vererbungsfunktion den Prototypkettenmechanismus, um die Eigenschaften und Methoden des übergeordneten Objekts zu erben und so den Effekt der Code-Wiederverwendung zu erzielen.
2. Prototypobjekte erstellen
In JavaScript können wir Prototypobjekte durch Konstruktoren oder Objektliterale erstellen. Auf das Prototypobjekt des Konstruktors kann über das Prototypattribut zugegriffen und es festgelegt werden. Auf das Prototypobjekt eines Objektliterals kann über das Attribut __proto__ zugegriffen und es festgelegt werden.
1. Verwenden Sie den Konstruktor, um ein Prototypobjekt zu erstellen
Der Beispielcode lautet wie folgt:
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHello = function() { console.log('Hello, ' + this.name); };
Im obigen Beispiel haben wir einen Person-Konstruktor definiert und mithilfe des Prototypattributs eine sayHello-Methode zu seinem Prototypobjekt hinzugefügt.
Das mit dem Konstruktor erstellte Prototypobjekt wird vom Instanzobjekt gemeinsam genutzt. Daher können wir auf die Eigenschaften und Methoden des Prototypobjekts zugreifen und diese aufrufen, indem wir ein Instanzobjekt erstellen.
Der Beispielcode lautet wie folgt:
var person = new Person('Jack', 20); person.sayHello(); // 输出:Hello, Jack
Im obigen Beispielcode erstellen wir zunächst eine Personenobjektinstanz über den Person-Konstruktor und geben dann eine Begrüßung aus, indem wir die Methode sayHello aufrufen.
2. Verwenden Sie Objektliterale, um Prototypobjekte zu erstellen. Der Beispielcode lautet wie folgt:
var person = { name: '', age: '', sayHello: function() { console.log('Hello, ' + this.name); } };
var person1 = { name: 'Jack', age: 20, }; var person2 = { name: 'Lucy', age: 18, }; person1.__proto__ = person; person2.__proto__ = person; person1.sayHello(); // 输出:Hello, Jack person2.sayHello(); // 输出:Hello, Lucy
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHello = function() { console.log('Hello, ' + this.name); }; var person = new Person('Jack', 20); person.sayHello(); // 输出:Hello, Jack
var person = { name: '', age: '', sayHello: function() { console.log('Hello, ' + this.name); } }; var person1 = Object.create(person); person1.name = 'Jack'; person1.age = 20; person1.sayHello(); // 输出:Hello, Jack var person2 = Object.create(person); person2.name = 'Lucy'; person2.age = 18; person2.sayHello(); // 输出:Hello, Lucy
Das obige ist der detaillierte Inhalt vonSo richten Sie eine Prototypenkette in JavaScript ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!