Prototyp, ein Objekt in js, das zum Definieren der Eigenschaften und Methoden anderer Objekte verwendet wird. Dieses Attribut ist ein Zeiger, der auf ein neues Objekt zeigt Methoden werden vom Prototypattribut ihres Konstruktors geerbt. Prototypkette: Wenn js versucht, auf die Eigenschaften eines Objekts zuzugreifen, prüft es zunächst, ob das Objekt über diese Eigenschaft verfügt. Wenn nicht, wendet sich js an den Prototyp des Objekts. Wenn das Prototypobjekt diese Eigenschaft nicht hat Suchen Sie weiterhin nach dem Prototyp des Prototyps.
Das Betriebssystem dieses Tutorials: Windows 10-System, DELL G3-Computer.
Prototyp und Prototypenkette sind ein wichtiges Konzept in der objektorientierten Programmierung, insbesondere in Sprachen wie JavaScript, die dynamische Prototypen unterstützen. Das Verständnis von Prototypen und Prototypenketten ist entscheidend für das Verständnis, wie Objekte erstellt und verwendet werden und wie ihre Methoden aufgerufen werden.
Prototyp:
Ein Prototyp ist ein Objekt in JavaScript, das verwendet wird, um die Eigenschaften und Methoden anderer Objekte zu definieren. Jeder Konstruktor verfügt über ein Prototypattribut, das einen Zeiger auf ein Prototypobjekt darstellt. Wenn ein neues Objekt erstellt wird, erbt das neue Objekt Eigenschaften und Methoden vom Prototypattribut seines Konstruktors (d. h. dem Prototypobjekt).
Zum Beispiel:
function Person(name) { this.name = name; } Person.prototype.sayHello = function() { return 'Hello, my name is ' + this.name; }; let person1 = new Person('Alice'); let person2 = new Person('Bob'); console.log(person1.sayHello()); // 输出: 'Hello, my name is Alice' console.log(person2.sayHello()); // 输出: 'Hello, my name is Bob'
Im obigen Beispiel haben wir einen Person-Konstruktor und eine sayHello-Methode über Person.prototype definiert. Dann haben wir zwei Person-Objekte erstellt, die beide die Methode sayHello erben. Dies liegt daran, dass sie alle vom Prototypobjekt Person.prototype erben.
Prototypenkette:
Beim Versuch, auf eine Eigenschaft eines Objekts zuzugreifen, prüft JavaScript zunächst, ob das Objekt diese Eigenschaft hat. Wenn nicht, greift JavaScript auf den Prototyp des Objekts zurück (d. h. auf das Prototypattribut des Konstruktors). Wenn das Prototypobjekt diese Eigenschaft nicht hat, sucht JavaScript weiterhin nach dem Prototyp des Prototyps usw., bis es ein Objekt mit dieser Eigenschaft findet oder den Anfang der Prototypenkette erreicht (also null). Dies wird als Prototypenkette bezeichnet.
Zum Beispiel:
function Person(name) { this.name = name; } Person.prototype.sayHello = function() { return 'Hello, my name is ' + this.name; }; let person1 = new Person('Alice'); delete person1.sayHello; // 删除person1的sayHello属性 console.log(person1.sayHello()); // 输出: 'Hello, my name is Alice'
Im obigen Beispiel haben wir das sayHello-Attribut von person1 gelöscht. Wenn wir versuchen, auf person1.sayHello() zuzugreifen, prüft JavaScript zunächst, ob person1 ein sayHello-Attribut hat. Da person1 dieses Attribut nicht hat, greift JavaScript auf den Prototyp von person1 (d. h. Person.prototype) zurück, der über die Methode sayHello verfügt und daher aufgerufen wird. Genau das macht die Prototypenkette: Sie bietet eine Möglichkeit, die Eigenschaften und Methoden eines Objekts gemeinsam zu nutzen, auch wenn diese Eigenschaften und Methoden nicht im Objekt selbst definiert sind.
Das obige ist der detaillierte Inhalt vonWas sind Prototypen und Prototypenketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!