


Einführung in die objektorientierte JavaScript-Programmierung Tutorial_Grundkenntnisse
Obwohl es Unterschiede zwischen objektorientiertem JavaScript und anderen Sprachen gibt, die einige Debatten ausgelöst haben, besteht kein Zweifel daran, dass JavaScript über leistungsstarke objektorientierte Programmierfunktionen verfügt
Dieser Artikel beginnt mit einer Einführung in objektorientierte Programmiersprachen. Die orientierte Programmierung beginnt, überprüft dann das JavaScript-Objektmodell und demonstriert schließlich objektorientierte Programmierkonzepte in JavaScript.
JavaScript-Rezension
Wenn Sie sich über JavaScript-Konzepte wie Variablen, Typen, Funktionen und Bereiche nicht sicher sind, können Sie „Wiedereinführung dieser Themen in JavaScript“ lesen. Sie können sich auch JavaScript 1.5 Core Guide
Objektorientierte Programmierung
Objektorientierte Programmierung ist ein Programmierparadigma, das Abstraktionen verwendet, um Modelle zu erstellen, die auf der realen Welt basieren. Es nutzt mehrere zuvor etablierte Paradigmentechniken, darunter Modularität, Polymorphismus und Kapselung. Heutzutage unterstützen viele gängige Programmiersprachen (wie Java, JavaScript, C#, C, Python, PHP, Ruby und Objective-C) die objektorientierte Programmierung (OOP).
Objektorientierte Programmierung kann als Verwendung von Sammlungen kollaborierender Objekte zum Entwerfen von Software angesehen werden, im Gegensatz zur traditionellen Sichtweise von Programmen als Sammlungen von Funktionen oder reduziert auf Listen von Computeranweisungen. Bei der objektorientierten Programmierung verfügt jedes Objekt über die folgenden Fähigkeiten: Nachrichten empfangen, Daten verarbeiten und Nachrichten an andere Objekte senden. Jedes Objekt kann als unabhängige kleine Maschine mit unterschiedlichen Rollen oder Verantwortlichkeiten betrachtet werden.
Objektorientierte Programmierung soll eine größere Flexibilität und Wartbarkeit bei der Programmierung fördern und erfreut sich in der Softwareentwicklung im großen Maßstab großer Beliebtheit. Aufgrund seiner Betonung der Modularität soll objektorientierter Code die Entwicklung einfacher und später leichter verständlich machen und das Analysieren, Codieren und Verstehen komplexer Situationen und Schritte erleichtern als weniger modulare direkte Programmiermethoden.
Sonderbedingungen
Klasse
~ Definiert die Eigenschaften des Objekts.
Objekt
~ Instanz der Klasse.
Eigenschaft
~ Charakteristik eines Objekts, z. B. Farbe.
Methode
~ Einige Objektfähigkeiten, wie zum Beispiel Gehen.
Konstruktor
~ Methode, die während der Instanziierung aufgerufen wird.
Vererbung
~ Eine Klasse kann Eigenschaften von einer anderen Klasse erben.
Kapselung
~ Eine Klasse definiert nur die Eigenschaften des Objekts und eine Methode definiert nur, wie die Methode ausgeführt wird.
Abstraktion
~ Kombiniert komplexe Vererbung, Methoden und Eigenschaften eines Objekts und muss in der Lage sein, ein bestimmtes Realitätsmodell zu simulieren.
Polymorphismus
~ Verschiedene Klassen können dieselben Methoden oder Eigenschaften definieren.
Eine weitere Beschreibung der objektorientierten Programmierung finden Sie im Wikipedia-Eintrag zur objektorientierten Programmierung.
Prototypbasierte Programmierung
Prototypbasierte Programmierung ist ein objektorientierter Programmierstil, bei dem es keine Klassen gibt und die Wiederverwendung von Verhalten (in klassenbasierten Sprachen Vererbung genannt) als Prototypen getarnt wird. Dies geschieht unter Verwendung vorhandener Objekte. Dieses Muster wird auch als klassenlose, prototyporientierte oder instanzbasierte Programmierung bezeichnet.
Das ursprüngliche (und sehr kanonische) Beispiel einer prototypbasierten Sprache ist die von David Ungar und Randall Smith entwickelte Programmiersprache Self. Allerdings ist dieser Stil der klassenlosen Programmierung in letzter Zeit immer beliebter geworden und wurde von mehreren Programmiersprachen wie JavaScript, Cecil, NewtonScript, Io, MOO, REBOL, Kevo, Squeak (bei Verwendung des Viewer-Frameworks zur Manipulation morphischer Komponenten) übernommen. und mehrere andere Sprachen.
Objektorientierte JavaScript-Programmierung
Kernobjekte
JavaScript enthält mehrere Objekte, zum Beispiel Mathe-, Objekt-, Array- und String-Objekte. Das folgende Beispiel zeigt, wie man mit der random()-Methode des Math-Objekts eine Zufallszahl erhält.
alert(Math.random());
Tipp: Bei diesem und allen anderen Beispielen wird davon ausgegangen, dass die Funktionsnamenwarnung global definiert wurde (da die Warnung in Webbrowsern enthalten ist). Die Alarmfunktion ist eigentlich kein Teil von JavaScript selbst.
Eine Liste der JavaScript-Kernobjekte finden Sie unter JavaScript 1.5-Kernreferenz: Globale Objekte.
Jedes Objekt in JavaScript ist eine Instanz eines Object-Objekts und erbt daher alle seine Eigenschaften und Methoden.
Benutzerdefinierte Objekte
Die Klasse
JavaScript ist eine prototypbasierte Sprache, die keine Klassenanweisungen enthält, wie sie in C oder Java zu finden sind. Dies kann manchmal Programmierer verwirren, die an Sprachen mit Klassenanweisungen gewöhnt sind. Allerdings verwendet JavaScript Funktionen als Klassen. Das Definieren einer Klasse ist so einfach wie das Definieren einer Funktion. Im folgenden Beispiel definieren wir eine neue Klasse namens Person.
Das Objekt (Klasseninstanz)
Um eine neue Instanz des obj-Objekts zu erstellen, verwenden wir die Anweisung new obj und weisen das Ergebnis zu (sein Typ ist obj). Geben Sie ihm ein Variable, damit später darauf zugegriffen werden kann.
Im folgenden Beispiel definieren wir zunächst eine Klasse namens Person und erstellen dann zwei Instanzen (person1 und person2).
var person1 = neue Person( );
var person2 = neue Person();
Siehe auch die neue Instanziierungsalternative Object.create.
Der Konstrukteur
Der Konstruktor wird bei der Instanziierung aufgerufen (in dem Moment, in dem eine Objektinstanz erstellt wird). Ein Konstruktor ist eine Methode einer Klasse. In JavaScript wird eine Funktion als Konstruktor des Objekts verwendet. Daher ist es nicht erforderlich, eine Konstruktormethode explizit zu definieren. Jedes in einer Klasse deklarierte Verhalten wird ausgeführt, wenn es instanziiert wird.
Der Konstruktor wird verwendet, um Objekteigenschaften festzulegen oder Methoden aufzurufen, um das Objekt für die Verwendung vorzubereiten. Später in diesem Artikel erfahren Sie, wie Sie Klassenmethoden und ihre Definitionen mit einer anderen Syntax hinzufügen.
Im folgenden Beispiel zeigt der Konstruktor der Person-Klasse bei der Instanziierung einer Person ein Warnfeld an.
Warnung ('Person instanziiert');
}
var person1 = new Person();
var person2 = new Person();
Die Eigenschaft (Objektattribut)
Eigenschaften sind Variablen, die in einer Klasse enthalten sind. Jede Objektinstanz verfügt über diese Eigenschaften. Damit die Vererbung ordnungsgemäß funktioniert, sollten Eigenschaften im Prototypattribut der Klasse (Funktion) festgelegt werden.
Das Manipulieren von Attributen in einer Klasse erfolgt über das Schlüsselwort this, das auf das aktuelle Objekt verweist. Der Zugriff (Lesen oder Schreiben) einer Eigenschaft von außerhalb einer Klasse erfolgt über die folgende Syntax: InstanceName.Property; Dies ist dieselbe Syntax, die in C, Java und einigen anderen Sprachen verwendet wird. (Verwenden Sie die this.Property-Syntax innerhalb der Klasse, um den Eigenschaftswert abzurufen oder festzulegen.)
Im folgenden Beispiel definieren wir das Geschlechtsattribut für die Person-Klasse und definieren das Attribut dann während der Initialisierung.
this.gender = Geschlecht;
Alert('Person instanziiert');
}
var person1 = neue Person('Männlich'); // Männlich: männlich
var person2 = neue Person('Weiblich') ; // Weiblich: 女
//Geschlecht von Person1 anzeigen
alert('person1 ist ein ' person1.gender); // Person1 ist ein Mann
Die Methoden
Methoden folgen der gleichen Logik wie Eigenschaften; der Unterschied besteht darin, dass sie Funktionen sind und als Funktionen definiert sind. Der Aufruf einer Methode ähnelt dem Zugriff auf eine Eigenschaft, Sie fügen jedoch () am Ende des Methodennamens hinzu, der möglicherweise Argumente enthält. Das Definieren einer Methode bedeutet, einer benannten Eigenschaft der Prototypeigenschaft der Klasse eine Funktion zuzuweisen. Der der Funktion zugewiesene Name ist der Name, unter dem die Methode für das Objekt aufgerufen wird.
Im folgenden Beispiel definieren und verwenden wir die Methode sayHello() für die Klasse Person.
this.gender = Geschlecht;
Alert('Person instanziiert');
}
Person.prototype.sayHello = function() {
Alert('hello');
};
var person1 = new Person('Male');
var person2 = new Person('Female'); // SayHello-Methode von Person aufrufen.
person1.sayHello(); // hallo
In JavaScript sind Methoden gewöhnliche Funktionsobjekte, die als Eigenschaften an eine Klasse/ein Objekt gebunden sind, was bedeutet, dass sie „außerhalb des Kontexts“ aufgerufen werden können. Betrachten Sie den folgenden Beispielcode:
Funktion Person (Geschlecht) {
this.gender = gender;
}
Person.prototype.sayGender = function() {
warning(this.gender);
};
var person1 = new Person(' Male');
var genderTeller = person1.sayGender;
person1.sayGender(); // alarmiert 'Male'
genderTeller(); genderTeller === person1 .sayGender); // Alerts true
alert(genderTeller === Person.prototype.sayGender); // Alerts true
Function.call und Function.apply
Vererbung
Vererbung ist eine Methode zum Erstellen einer Klasse, die eine spezialisierte Version einer oder mehrerer Klassen ist. (JavaScript unterstützt nur die Vererbung einzelner Klassen.) Diese spezialisierte Klasse wird oft als untergeordnete Klasse bezeichnet, und die anderen Klassen werden oft als übergeordnete Klasse bezeichnet. Um in JavaScript die Vererbung abzuschließen, müssen Sie der Unterklasse eine Instanz der übergeordneten Klasse zuweisen und dann die Unterklasse spezialisieren.Tipp: Da JavaScript den „prototype.constructor“ (Konstruktor des Prototyps) einer Unterklasse nicht erkennt, siehe
Core JavaScript 1.5 Core Reference: Global Objects:Object:prototype Attribut, daher müssen wir diesen Wert manuell angeben .
Im folgenden Beispiel definieren wir die Klasse Student als Unterklasse von Person. Dann definieren wir die Methode sayHello() neu und fügen die Methode sayGoodBye() hinzu.
// Personenklasse definieren
function Person() {}
Person.prototype.walk = function() {
warning('I am walk!');
} ;
Person.prototype.sayHello = function() {
alarm('hello');
};
// Definiere die Student-Klasse
function Student() {
// Rufen Sie den Konstruktor der übergeordneten Klasse auf
Person.call(this);
}
// Inherit Person
Student.prototype = new Person(); // Korrigieren Sie den Konstruktorzeiger, da er auf Person zeigt
Student.prototype.constructor = Student; // Ersetzen Sie die sayHello-Methode
Student.prototype.sayHello = function() {
warning('hi, I am a student');
}
// sayGoodBye-Methode hinzufügen
Student.prototype.sayGoodBye = function() {
alarm('goodBye');
}
var student1 = new Student();
student1. sayHello( );
student1.walk();
studierender / wahr
Verpackung
Im obigen Beispiel muss Student nicht wissen, wie die walk()-Methode der Person-Klasse implementiert ist, kann diese Methode jedoch trotzdem verwenden. Die Student-Klasse muss diese Methode nicht explizit definieren, es sei denn, wir möchten ändere es. Dies nennt man Kapselung, wobei jede Klasse die Methoden ihrer übergeordneten Klasse erbt und nur definiert, was sie ändern möchte.
Abstraktion ist ein Mechanismus, der die Modellierung des aktuellen Teils des angesprochenen Problems ermöglicht. Dies kann durch Vererbung (Spezialisierung) oder Zusammensetzung erreicht werden. JavaScript erreicht eine Spezialisierung durch Vererbung und Zusammensetzung, indem es Klasseninstanzen zu Eigenschaftswerten anderer Objekte werden lässt.
Die Function-Klasse von JavaScript erbt von der Object-Klasse (dies veranschaulicht die Spezialisierung des Modells), und die Function.prototype-Eigenschaft ist eine Instanz von Object (dies veranschaulicht die Zusammensetzung).So wie alle Methoden und Eigenschaften innerhalb von Prototypattributen definiert werden, können verschiedene Klassen Methoden mit demselben Namen definieren; der Umfang der Methoden ist auf die Klasse beschränkt, in der sie definiert sind. Dies gilt nur, wenn zwischen den beiden Klassen keine Eltern-Kind-Beziehung besteht (wenn eine Klasse nicht von anderen Klassen in der Vererbungskette erbt).
TippsDie in diesem Artikel vorgeschlagenen Techniken zur Implementierung der objektorientierten Programmierung sind nicht nur auf JavaScript anwendbar, da es hinsichtlich der Durchführung der objektorientierten Programmierung sehr flexibel ist.
Auch hier verwenden die hier vorgestellten Techniken weder Sprach-Hacks noch imitieren sie Implementierungen der Objekttheorie in anderen Sprachen.Es gibt andere fortgeschrittenere objektorientierte Programmiertechniken in JavaScript, diese gehen jedoch über den Rahmen dieses Einführungsartikels hinaus.

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



Prägnantes und leicht verständliches MyBatis-Einführungs-Tutorial: Schreiben Sie Schritt für Schritt Ihr erstes Programm. MyBatis ist ein beliebtes Java-Persistenzschicht-Framework, das den Prozess der Interaktion mit Datenbanken vereinfacht. Dieses Tutorial zeigt Ihnen, wie Sie mit MyBatis einfache Datenbankoperationen erstellen und ausführen. Schritt 1: Umgebungseinrichtung Stellen Sie zunächst sicher, dass Ihre Java-Entwicklungsumgebung installiert ist. Laden Sie dann die neueste Version von MyBatis herunter und fügen Sie sie Ihrem Java-Projekt hinzu. Sie können es von der offiziellen Website von MyBatis herunterladen

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Die Go-Sprache unterstützt die objektorientierte Programmierung durch Typdefinition und Methodenzuordnung. Es unterstützt keine traditionelle Vererbung, sondern wird durch Komposition implementiert. Schnittstellen sorgen für Konsistenz zwischen Typen und ermöglichen die Definition abstrakter Methoden. Praxisbeispiele zeigen, wie OOP zum Verwalten von Kundeninformationen verwendet wird, einschließlich Vorgängen zum Erstellen, Abrufen, Aktualisieren und Löschen von Kunden.

Die Go-Sprache unterstützt objektorientierte Programmierung, definiert Objekte über Strukturen, definiert Methoden mithilfe von Zeigerempfängern und implementiert Polymorphismus über Schnittstellen. Objektorientierte Funktionen ermöglichen die Wiederverwendung, Wartbarkeit und Kapselung von Code in der Go-Sprache, es gibt jedoch auch Einschränkungen wie das Fehlen traditioneller Konzepte von Klassen und Vererbung sowie Methodensignaturumwandlungen.

Zu den OOP-Best Practices in PHP gehören Namenskonventionen, Schnittstellen und abstrakte Klassen, Vererbung und Polymorphismus sowie Abhängigkeitsinjektion. Zu den praktischen Fällen gehören: Verwenden des Lagermodus zum Verwalten von Daten und Verwenden des Strategiemodus zum Implementieren der Sortierung.

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

In Golang (Go-Sprache) gibt es kein Konzept einer Klasse im herkömmlichen Sinne, es stellt jedoch einen Datentyp namens Struktur bereit, durch den objektorientierte Funktionen ähnlich wie Klassen erreicht werden können. In diesem Artikel erklären wir, wie Strukturen zur Implementierung objektorientierter Funktionen verwendet werden, und stellen konkrete Codebeispiele bereit. Definition und Verwendung von Strukturen Werfen wir zunächst einen Blick auf die Definition und Verwendung von Strukturen. In Golang können Strukturen über das Schlüsselwort type definiert und dann bei Bedarf verwendet werden. Strukturen können Attribute enthalten

Indem Sie das Verfolgen des Objektstatus, das Setzen von Haltepunkten, das Verfolgen von Ausnahmen und die Verwendung der xdebug-Erweiterung beherrschen, können Sie objektorientierten PHP-Programmiercode effektiv debuggen. 1. Objektstatus verfolgen: Verwenden Sie var_dump() und print_r(), um Objektattribute und Methodenwerte anzuzeigen. 2. Legen Sie einen Haltepunkt fest: Legen Sie einen Haltepunkt in der Entwicklungsumgebung fest. Wenn die Ausführung den Haltepunkt erreicht, wird der Debugger angehalten, sodass der Objektstatus einfacher überprüft werden kann. 3. Ausnahmen verfolgen: Verwenden Sie Try-Catch-Blöcke und getTraceAsString(), um den Stack-Trace und die Meldung abzurufen, wenn die Ausnahme auftritt. 4. Verwenden Sie den Debugger: Die Funktion xdebug_var_dump() kann den Inhalt von Variablen während der Codeausführung überprüfen.
