Man fühlt sich leicht eingeschüchtert, wenn man den Begriff „parasitäre Vererbung“ hört. Keine Sorge, dieser Artikel wird versuchen, diese Vererbungsmethode in JS leicht verständlich zu erklären. Ich hoffe, dass er allen helfen kann.
Wir definieren zunächst eine leere Funktion, der formale Parameter ist original, wie folgt:
function createAnother(original){}
Erstellen Sie ein neues Objekt in diesem Funktionsklon :
function createAnother(original){ var clone=Object.create(original); }
Fügen Sie das Attribut sayHi zum Klonobjekt hinzu. Das Attribut sayHi ist eine Funktion:
function createAnother(original){ var clone=Object.create(original); clone.sayHi=function(){ alert('hi'); }; }
Zum Schluss geben Sie das Klonobjekt zurück:
function createAnother(original){ var clone=Object.create(original); clone.sayHi=function(){ alert('hi'); }; return clone; }
Angenommen, es gibt ein solches Objekt:
var person={ name:'Nicholas', friends:['Shelby','Court','Van'] };
Übergeben Sie das obige Objekt als tatsächlichen Parameter an unsere auszuführende Funktion:
var anotherPerson=createAnother(person); anotherPerson.sayHi();
Das Ergebnis der Operation ist: Es erscheint ein „Hallo“-Fenster.
Wir sehen, dass die Funktion createAnother diesen Satz hat:
var clone=Object.create(original);
Ist das nicht eine prototypische Vererbung?
Tatsächlich wird die prototypische Vererbungsmethode tatsächlich intern verwendet und das endgültig zurückgegebene Objekt ist das Klonobjekt. Es unterscheidet sich jedoch immer noch ein wenig von der prototypischen Vererbung:
Die prototypische Vererbung erbt die Eigenschaften des ursprünglichen Objekts, und das neue Objekt verfügt nicht über neue zusätzliche Eigenschaften. Durch die parasitäre Vererbung können dem neuen Objekt intern Eigenschaften hinzugefügt werden Das Objekt verfügt zusätzlich zu den Eigenschaften über das ursprüngliche Objekt und verfügt außerdem über intern hinzugefügte Eigenschaften.
Im obigen Beispiel gibt es im Vergleich zur prototypischen Vererbung zusätzliche Schlüsselaussagen:
clone.sayHi=function(){ alert('hi'); };
Nachdem eine Instanz erstellt wurde, verfügt die Instanz über dieses Attribut.
Verwandte Empfehlungen:
Teilen mehrerer js-Vererbungsstile
Quellcode-Analyse von js-Vererbung Basisklasse_js-orientiertes Objekt
JS-Vererbungsimplementierungscode_Javascript-Kenntnisse
Das obige ist der detaillierte Inhalt vonParasitäre Vererbung der JS-Vererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!