Heim > Web-Frontend > js-Tutorial > Hauptteil

Parasitäre Vererbung der JS-Vererbung

小云云
Freigeben: 2018-03-07 10:50:58
Original
2120 Leute haben es durchsucht

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.

1. Ein Beispiel

Wir definieren zunächst eine leere Funktion, der formale Parameter ist original, wie folgt:

function createAnother(original){}
Nach dem Login kopieren

Erstellen Sie ein neues Objekt in diesem Funktionsklon : ​​

function createAnother(original){
    var clone=Object.create(original);
}
Nach dem Login kopieren

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');
    };
}
Nach dem Login kopieren

Zum Schluss geben Sie das Klonobjekt zurück:

function createAnother(original){
    var clone=Object.create(original);    clone.sayHi=function(){
        alert('hi');
    };    return clone;
}
Nach dem Login kopieren

Angenommen, es gibt ein solches Objekt:

var person={
    name:'Nicholas',
    friends:['Shelby','Court','Van']
};
Nach dem Login kopieren

Übergeben Sie das obige Objekt als tatsächlichen Parameter an unsere auszuführende Funktion:

var anotherPerson=createAnother(person);
anotherPerson.sayHi();
Nach dem Login kopieren

Das Ergebnis der Operation ist: Es erscheint ein „Hallo“-Fenster.

2. Zweifelhafter Punkt: Was ist der Unterschied zwischen dieser Methode und der Prototypenvererbung Object.create(o)?

Wir sehen, dass die Funktion createAnother diesen Satz hat:

var clone=Object.create(original);
Nach dem Login kopieren

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');
    };
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!