Die Prototypenkette ist die Hauptmethode zur Implementierung der js-Vererbung. Ihr Prinzip besteht darin, Prototypen zu verwenden, um einem Referenztyp die Eigenschaften und Methoden eines anderen Referenztyps erben zu lassen. Wenn wir ein Prototypobjekt einer Instanz gleichsetzen, enthält das Prototypobjekt zu diesem Zeitpunkt einen Zeiger auf einen anderen Prototyp. Wenn ein anderer Prototyp einer Instanz eines Objekts entspricht, ist dies das Grundkonzept der Prototypenkette.
Das Folgende ist ein einfaches Beispiel
var Parent = function(){ this.name = 'parent' ; } ; Parent.prototype.getName = function(){ return this.name ; } ; Parent.prototype.obj = {a : 1} ; var Child = function(){ this.name = 'child' ; } ; Child.prototype = new Parent() ; var parent = new Parent() ; var child = new Child() ; console.log(parent.getName()) ; //parent console.log(child.getName()) ; //child
Der obige Code definiert zwei Typen: Eltern und Kind. Jeder Typ verfügt über eine Eigenschaft und eine Methode. Der Hauptunterschied besteht darin, dass das Kind das übergeordnete Objekt erbt. Ersetzen Sie es durch eine neue Instanz. Weisen Sie das Objekt der übergeordneten Klasse direkt dem Prototyp des Konstruktors der Unterklasse zu, sodass das Objekt der Unterklasse auf die Eigenschaften im Prototyp der übergeordneten Klasse und im Konstruktor der übergeordneten Klasse zugreifen kann.
Wir können den Operator „instanceof“ zur Beurteilung verwenden. Verwenden Sie diesen Operator, um die Instanz und den Konstruktor zu testen, die in der Prototypenkette erscheinen, und er wird „true“ zurückgeben.
Ein Bereich, der bei JavaScript-Konstruktoren leicht verwirrend ist, ist das Konstruktorattribut des Prototyps. In JavaScript verfügt jede Funktion über ein Standardobjektattribut „Prototyp“, das standardmäßig zwei Mitgliedsattribute enthält: Konstruktor und
Proto. Die Details des Prototyps werden in diesem Artikel nicht besprochen. Was uns jetzt beschäftigt, ist das Konstruktorattribut.
function CO(){ this.p = “I’m in constructed object”; this.alertP = function(){ alert(this.p); } } var o2 = new CO();
function superType(){ this.colors = ["red","blue","green"]; } function subtype(){ superType.call(this); } var instance1 = new subtype(); instance1.colors.push("black"); alert(instance1.colors);//"red,blue,green,black" var instance2 = new subtype(); alert(instance2.colors);//"red,blue,green"
function superType(name){ this.name = name; } function subtype(){ superType.call(this,"Marry"); this.age = 29; } var instance = new subtype(); alert(instance.name);//"Marry" alert(instance2.age);//"29"
JS-Entschlüsselung, Online-JS-Entschlüsselung Entschlüsselung
Das obige ist der detaillierte Inhalt vonVererbung in JS verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!