


Vergleichende Analyse mehrerer Vererbungsmethoden in Javascript-Programmierung_Javascript-Kenntnissen
Dieser Artikel analysiert den Vergleich mehrerer Vererbungsmethoden in der Javascript-Programmierung anhand von Beispielen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Eröffnung
Im „strengsten“ Sinne ist JavaScript keine echte objektorientierte Sprache. Der Grund für diese Aussage liegt im Allgemeinen darin, dass JavaScript als schwach typisierte Sprache sich stark von der Vererbungsmethode starker Sprachen wie Java oder C# unterscheidet und daher standardmäßig eine nicht gängige objektorientierte Methode ist Es gibt sogar viele. Das Buch beschreibt es als eine „nicht vollständig objektorientierte“ Sprache. Tatsächlich bin ich persönlich der Meinung, dass die Methode nicht wichtig ist. Wichtig ist, ob sie über objektorientiertes Denken verfügt. Leute, die sagen, dass JavaScript keine objektorientierte Sprache ist, haben sich möglicherweise nicht eingehend mit der Vererbungsmethode von JavaScript befasst Ich habe diesen Artikel zur Kommunikation geschrieben.
Warum Sie Javascript verwenden müssen, um die Vererbung zu implementieren
Die Leistung früher PC-Maschinen ist wirklich nicht schmeichelhaft. Der gesamte Druck lag auf der Serverseite und der Client-Browser war nur eine Dekoration. In Verbindung mit dem damals beliebten Tabellenlayout und dem Internetzugang per Telefon war das Surfen auf Webseiten sehr langsam; heute entwickelt sich das Internetzeitalter rasant, die Hardware von PCs wurde erheblich verbessert und auch die Leistung von Client-Browsern ist sehr enttäuschend. Auch das Modell der Webentwicklung verändert sich stillschweigend: Der Server soll nicht mehr so „hart“ sein wie bisher. Auf diese Weise soll der Druck auf jeden einzelnen Client verteilt werden Durch die Kosteneinsparung im Unternehmen wird auch die Web-Front-End-Entwicklung interessanter – es entstehen immer mehr Front-End-Frameworks und sogar viele Front-End-MVC-Frameworks. In diesem Zusammenhang besteht die Rolle von JavaScript definitiv nicht nur darin, eine einfache Überprüfung durchzuführen, einige Anforderungen zu senden oder ein DOM zu betreiben. Es muss mehr Rollen wie Front-End-Routing und Business-Schicht übernehmen, und JavaScript muss viele logische Aufgaben übernehmen Aufgaben, die die Abstraktion von Front-End-Daten (d. h. Modellen) umfassen, und nur durch die Verwendung von objektorientiertem Denken können die abstrahierten Daten gut verarbeitet werden, daher ist die Vererbung hier sehr wichtig.
Beginnen Sie mit einem einfachen Bedürfnis
Extrahieren Sie nun ein Modell mit dem Namen „Person“ von der Rezeption, das über die Grundattribute „Name“ und „Alter“ verfügt. Standardmäßig kann jeder sprechen, sodass die Sprechfunktion für jede Instanz auf dem Prototypobjekt platziert ist. Nun muss der Mensch die grundlegenden Eigenschaften der Person erben und auf dieser Basis seine eigenen einzigartigen Eigenschaften hinzufügen.
function Person (name, age) { this.name = name; this.age = age; } Person.prototype.say = function(){ console.log('hello, my name is ' + this.name); }; function Man() { //my own properties }
Im Folgenden werden mehrere gängige Vererbungsmethoden vorgestellt.
1. Prototypenkettenvererbung
function Person (name, age) { this.name = name; this.age = age; } Person.prototype.say = function(){ console.log('hello, my name is ' + this.name); }; function Man() { } Man.prototype = new Person('pursue'); var man1 = new Man(); man1.say(); //hello, my name is pursue var man2 = new Man(); console.log(man1.say === man2.say);//true console.log(man1.name === man2.name);//true
Diese Vererbungsmethode ist sehr direkt. Um alle Attributmethoden von Person (Instanz und Prototyp) zu erhalten, wird die Instanz new Person('pursue') der übergeordneten Klasse tatsächlich direkt zugewiesen , die Unterklasse Die Klasseninstanzen man1 und man2 selbst sind völlig leere Objekte. Alle Attribute und Methoden müssen in der Prototypenkette gefunden werden, sodass die gefundenen Attribute und Methoden gleich sind.
Daher ist es unrealistisch, die Vererbung der Prototypenkette direkt zu verwenden.
2. Konstruktorvererbung verwenden
function Person (name, age) { this.name = name; this.age = age; } Person.prototype.say = function(){ console.log('hello, my name is ' + this.name); }; function Man(name, age) { Person.apply(this, arguments); } //Man.prototype = new Person('pursue'); var man1 = new Man('joe'); var man2 = new Man('david'); console.log(man1.name === man2.name);//false man1.say(); //say is not a function
Hier verwendet die Unterklasse apply im Konstruktor, um den Konstruktor der übergeordneten Klasse aufzurufen, um den Effekt zu erzielen, dass die Eigenschaften der übergeordneten Klasse geerbt werden. Dies ist viel besser als die direkte Verwendung der Prototypenkette verfügt über eigene Ressourcen, aber diese Methode kann nur die Instanzattribute der übergeordneten Klasse erben, sodass die Say-Methode nicht gefunden werden kann. Um alle Attribute und Methoden der übergeordneten Klasse zu erben, muss die Prototypenkette geändert werden. Damit wird die kombinierte Vererbungsmethode eingeführt.
3. Kombinationsvererbung
function Person (name, age) { this.name = name; this.age = age; } Person.prototype.say = function(){ console.log('hello, my name is ' + this.name); }; function Man(name, age) { Person.apply(this, arguments); } Man.prototype = new Person(); var man1 = new Man('joe'); var man2 = new Man('david'); console.log(man1.name === man2.name);//false console.log(man1.say === man2.say);//true man1.say(); //hello, my name is joe
Es ist zu beachten, dass die Instanzattribute von man1 und man2 tatsächlich die Prototypattribute überschreiben, aber nicht die say-Methode des Prototyps überschreiben (da sie diese nicht haben), also hier man1.say === man2 .say gibt immer noch „true“ zurück. Achten Sie also darauf, die Prototypeigenschaft nicht zu überschreiben, da sie allen Instanzen gemeinsam ist.
4. Parasitäre Kombinationsvererbung
Um ehrlich zu sein, kenne ich den Namen des folgenden Formulars wirklich nicht, aber es ist tatsächlich die beliebteste und klassischste JavaScript-Vererbungsmethode. Tatsächlich müssen Sie nur die Struktur des Prototypobjekts verstehen:
function Person (name, age) { this.name = name; this.age = age; } Person.prototype.say = function(){ console.log('hello, my name is ' + this.name); }; function Man(name, age) { Person.apply(this, arguments); } Man.prototype = Object.create(Person.prototype);//a. Man.prototype.constructor = Man;//b. var man1 = new Man('pursue'); var man2 = new Man('joe'); console.log(man1.say == man2.say); console.log(man1.name == man2.name);
Tatsächlich besteht der einzige Unterschied zwischen der parasitären Kombinationsvererbung und der oben genannten Kombinationsvererbung in der Art und Weise, wie das Prototypobjekt der Unterklasse (a. und b.) erstellt wird. Hier wird die Methode Object.creat(obj) verwendet verarbeitet das eingehende Objekt. Das Objekt wird flach kopiert, ähnlich wie:
function create(obj){ function T(){}; T.prototype = obj; return new T(); }
Daher verbindet a. das Prototypobjekt der Unterklasse gut mit dem Prototypobjekt der übergeordneten Klasse, anstatt den Prototyp der Unterklasse wie bei der allgemeinen kombinierten Vererbung direkt zu kopieren (z. B. Man.prototype = new Person() ;), das ist nur ein sehr heftiges Überschreiben von Attributen. Die Methode der parasitären Kombinationsvererbung erbt Instanzattribute und Prototypattribute separat, was in der Implementierung sinnvoller ist.
Hinweis: Code b ändert das Ergebnis von „instanceof“ nicht, ist jedoch strenger für Szenarien, in denen ein Konstruktor erforderlich ist.
Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der JavaScript-Programmierung befassen.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Heutzutage werden Leistung und Funktionen von Mobiltelefonen immer leistungsfähiger. Nahezu alle Mobiltelefone sind mit komfortablen NFC-Funktionen ausgestattet, um Benutzern das mobile Bezahlen und die Identitätsauthentifizierung zu erleichtern. Einige Xiaomi 14Pro-Benutzer wissen jedoch möglicherweise nicht, wie sie die NFC-Funktion aktivieren können. Als nächstes möchte ich es Ihnen im Detail vorstellen. Wie aktiviere ich die NFC-Funktion auf dem Xiaomi 14Pro? Schritt 1: Öffnen Sie das Einstellungsmenü Ihres Telefons. Schritt 2: Suchen Sie die Option „Verbinden und teilen“ oder „Drahtlos und Netzwerke“ und klicken Sie darauf. Schritt 3: Suchen Sie im Menü „Verbindung & Freigabe“ oder „Drahtlos & Netzwerke“ nach „NFC & Zahlungen“ und klicken Sie darauf. Schritt 4: Suchen Sie nach „NFC Switch“ und klicken Sie darauf. Im Allgemeinen ist die Standardeinstellung deaktiviert. Schritt 5: Klicken Sie auf der NFC-Umschaltseite auf die Schaltfläche zum Einschalten.

Das Gleiten des Bildschirms durch die Luft ist eine Funktion von Huawei, die in der Huawei mate60-Serie sehr gelobt wird. Diese Funktion nutzt den Lasersensor am Telefon und die 3D-Tiefenkamera der Frontkamera, um eine Reihe von Funktionen auszuführen, die nicht erforderlich sind Funktion zum Berühren des Bildschirms, z. B. das Wischen von TikTok aus der Luft, aber wie kann man mit dem Huawei Pocket 2 TikTok aus der Luft wischen? Wie mache ich mit Huawei Pocket2 Screenshots aus der Luft? 1. Öffnen Sie die Einstellungen des Huawei Pocket2 2. Wählen Sie dann [Barrierefreiheit]. 3. Klicken Sie, um [Smart Perception] zu öffnen. 4. Schalten Sie einfach die Schalter [Air Swipe Screen], [Air Screenshot] und [Air Press] ein. 5. Wenn Sie es verwenden, müssen Sie es 20–40 cm vom Bildschirm entfernt halten, Ihre Handfläche öffnen und warten, bis das Handflächensymbol auf dem Bildschirm erscheint.

Die CAD-Dateien des iPhone 16 Pro wurden veröffentlicht und das Design stimmt mit früheren Gerüchten überein. Letzten Herbst hat das iPhone 15 Pro eine Aktionstaste hinzugefügt, und in diesem Herbst plant Apple offenbar, kleinere Anpassungen an der Größe der Hardware vorzunehmen. Hinzufügen einer Aufnahmetaste Gerüchten zufolge könnte das iPhone 16 Pro eine zweite neue Taste hinzufügen, was nach dem letzten Jahr das zweite Jahr in Folge sein wird, in dem eine neue Taste hinzugefügt wird. Gerüchten zufolge wird die neue Aufnahmetaste auf der unteren rechten Seite des iPhone 16 Pro angebracht. Dieses Design soll die Kamerasteuerung komfortabler machen und auch die Verwendung der Aktionstaste für andere Funktionen ermöglichen. Dieser Knopf wird nicht länger nur ein gewöhnlicher Auslöser sein. Bezüglich der Kamera, vom aktuellen iP

WPS ist unsere häufig verwendete Office-Software. Bei der Bearbeitung langer Artikel sind die Schriftarten oft zu klein, um klar gesehen zu werden, daher werden die Schriftarten und das gesamte Dokument angepasst. Zum Beispiel: Durch Anpassen des Zeilenabstands wird das gesamte Dokument sehr klar. Ich schlage vor, dass alle Freunde diesen Arbeitsschritt lernen. Die spezifischen Arbeitsschritte sind wie folgt. Öffnen Sie die WPS-Textdatei, die Sie anpassen möchten, suchen Sie die Symbolleiste für die Absatzeinstellung im Menü [Start] und Sie sehen das kleine Symbol für die Einstellung des Zeilenabstands (im Bild als roter Kreis dargestellt). 2. Klicken Sie auf das kleine umgekehrte Dreieck in der unteren rechten Ecke der Zeilenabstandseinstellung. Der entsprechende Zeilenabstandswert wird angezeigt. Sie können den 1- bis 3-fachen Zeilenabstand auswählen (wie durch den Pfeil in der Abbildung dargestellt). 3. Oder klicken Sie mit der rechten Maustaste auf den Absatz und er wird angezeigt

Laut Statistiken vom 2. März hat der Gesamt-TVL des Bitcoin-Zweitschichtnetzwerks MerlinChain 3 Milliarden US-Dollar erreicht. Darunter machten die ökologischen Bitcoin-Vermögenswerte 90,83 % aus, darunter BTC im Wert von 1,596 Milliarden US-Dollar und BRC-20-Vermögenswerte im Wert von 404 Millionen US-Dollar. Letzten Monat erreichte der Gesamt-TVL von MerlinChain innerhalb von 14 Tagen nach dem Start der Absteckaktivitäten 1,97 Milliarden US-Dollar und übertraf damit Blast, das im November letzten Jahres gestartet wurde und auch das jüngste und gleichermaßen auffälligste ist. Am 26. Februar überstieg der Gesamtwert der NFTs im MerlinChain-Ökosystem 420 Millionen US-Dollar und wurde damit neben Ethereum zum öffentlichen Kettenprojekt mit dem höchsten NFT-Marktwert. Projekteinführung MerlinChain ist eine OKX-Unterstützung

Vergleich und Analyse der Vor- und Nachteile von PHP7.2 und 5. PHP ist eine äußerst beliebte serverseitige Skriptsprache und wird häufig in der Webentwicklung verwendet. Allerdings wird PHP in verschiedenen Versionen ständig aktualisiert und verbessert, um den sich ändernden Anforderungen gerecht zu werden. Derzeit ist PHP7.2 die neueste Version, die im Vergleich zur vorherigen PHP5-Version viele bemerkenswerte Unterschiede und Verbesserungen aufweist. In diesem Artikel vergleichen wir die Versionen PHP7.2 und PHP5, analysieren ihre Vor- und Nachteile und stellen spezifische Codebeispiele bereit. 1. Leistungs-PH

Unterschiede und vergleichende Analyse zwischen C-Sprache und PHP C-Sprache und PHP sind beide gängige Programmiersprachen, weisen jedoch in vielen Aspekten offensichtliche Unterschiede auf. In diesem Artikel wird eine vergleichende Analyse der C-Sprache und PHP durchgeführt und die Unterschiede zwischen ihnen anhand spezifischer Codebeispiele veranschaulicht. 1. Syntax und Verwendung: C-Sprache: Die C-Sprache ist eine prozessorientierte Programmiersprache, die hauptsächlich für die Programmierung auf Systemebene und die eingebettete Entwicklung verwendet wird. Die Syntax der C-Sprache ist relativ einfach und auf niedriger Ebene, kann den Speicher direkt bedienen und ist effizient und flexibel. Die C-Sprache betont die Vollständigkeit des Programms durch den Programmierer

Der Fortschritt der Zeit hat das Einkommen vieler Menschen immer höher gemacht, und die Mobiltelefone, die sie normalerweise verwenden, werden häufig gewechselt. Das Xiaomi Mi 14 Ultra, das kürzlich von Xiaomi auf den Markt gebracht wurde, muss den Benutzern bekannt sein kann Benutzern mehr bieten Um ein komfortables und reibungsloses Erlebnis zu bieten, werden neue Mobiltelefone unweigerlich auf viele Funktionen stoßen, die nicht verwendet werden. Wie verwendet man beispielsweise die intelligente Bilderweiterung Xiaomi 14UltraAI? Schauen Sie sich das unten stehende Tutorial zur Verwendung an! Wie verwende ich die intelligente Bilderweiterung Xiaomi 14UltraAI? Öffnen Sie zunächst Xiaomi 14Ultra, rufen Sie das Fotoalbum auf, wählen Sie das Bild aus, das Sie vergrößern möchten, und rufen Sie die Option zum Bearbeiten des Fotoalbums auf. Klicken Sie auf „Zuschneiden drehen“, klicken Sie auf „Zuschneiden“ und klicken Sie in der angezeigten Auswahl auf „Intelligent erweitern“. Wählen Sie abschließend die Möglichkeit, das Bild entsprechend Ihren eigenen Bedürfnissen zu erweitern.
