Klassen in CoffeeScript verwenden

Eines der wichtigsten Dinge, die uns bei der Definition unserer Anwendung helfen, ist die Verwendung von Klassen, da wir mit ihnen real modellierte Objekte definieren können und es viel einfacher macht, in die digitale Welt überzugehen.

In CoffeeScript ist das Erstellen und Instanziieren einer Klasse sehr einfach, da die Syntax so minimal ist, dass man sie sich leicht merken kann. Stattdessen ist das Erstellen einer Klassendefinition direkt in JavaScript etwas umständlicher und kann länger dauern als erwartet

Anforderungen
Um dieses Tutorial abzuschließen, benötigen wir eine funktionierende Installation von CoffeeScript . Außerdem benötigen wir Berechtigungen, um Dateien zu schreiben und CoffeeScript auf dem Computer auszuführen, auf dem wir das Tutorial ausführen. Wir brauchen einen Texteditor, um den Code zu schreiben, den wir machen wollen, damit etwas verweilt und nicht alles in der Konsole ist.

Definieren Sie eine Klasse in CoffeeScript

Eine Klasse ist nur ein Name und einige Eigenschaften, die ihr Verhalten definieren. Basierend auf diesem Konzept können wir eine Klasse in CoffeeScript folgendermaßen definieren:

 Studentenklasse 

Das ist alles, was wir tun müssen. Auf einfache Weise haben wir bereits unsere erste Klasse in CoffeeScript erstellt . Nun, da dies geschieht, wenn wir eine Eigenschaft einschließen möchten, um sie verwenden zu können, erstellen wir einfach eine Instanz und fügen diese Eigenschaft hinzu.

 student = new Student () student.name = "Carolina" 

Sehen wir uns nun an, wie in der folgenden Abbildung CoffeeScript all unseren Code beim Erstellen der Kompilierung in reines JavaScript umwandelt. Denken Sie dabei an den Befehl coffee -c filename.coffee :

coffeescript-clases.jpg

Wir haben dann festgestellt, dass die Syntax von reinem JavaScript viel umfangreicher und komplexer ist als die drei Codezeilen, die wir in CoffeeScript erstellt haben. Dies ist die Stärke dieser Sprache, die es uns ermöglicht, uns wirklich unserer Anwendung zu widmen.

Fügen Sie Methoden zu unseren Klassen hinzu

Bei der objektorientierten Programmierung werden am häufigsten Methoden zu den Klassen hinzugefügt, da diese zusätzlich zu den Eigenschaften eine Vorstellung davon geben, was unser Objekt tun kann oder nicht, wenn wir beispielsweise mit dem fortfahren Studentenklasse Wir können eine Methode für sie erstellen, in der ihr Objekt eine Botschaft ausdrückt. Schauen wir uns an, wie dies erreicht werden kann:

 Klasse Schülergespräch: -> console.log "Hallo Welt!" 

Wenn wir dann ein Objekt derselben Klasse erstellen, könnten wir dieselbe Methode verwenden. Zum Beispiel:

 student = neuer Student student.speak () 

Auf diese Weise stellen wir sicher, dass unsere Methode viele Male verwendet werden kann, solange wir mehrere Instanzen erstellen. Dadurch erhält unser Code eine der Eigenschaften der Objektorientierung, die wiederverwendet wird . Jetzt werden wir unseren Code neu definieren, sodass er Argumente akzeptiert. Damit können wir weit mehr als nur einen einfachen Eindruck von der Konsole machen.

 Klasse Schülergespräch: (Name) -> console.log "Hallo # {Name}!" student = neuer Schüler Schüler. ("Carolina") 

Mal sehen, wie all dies beim Kompilieren in JavaScript- Code übersetzt wird:

See also  So ordnen Sie ein Netzwerklaufwerk zu Google Drive, OneDrive

coffeescript-clases-2.jpg

Bedeutung von Eigenschaften in Objekten

Wenn wir aus Klassen abgeleitete Objekte erstellen, ist es wichtig, ihren Wert während ihrer Lebensdauer in unserer Anwendung beizubehalten. Dadurch können wir Komponenten, auf die mit Methoden zugegriffen werden kann, zu ihren Eigenschaften machen und sie somit in verschiedenen Teilen unserer Anwendung verwenden.

Um eine Eigenschaft in CoffeeScript bearbeiten zu können, verwenden wir einfach den Operator @ gefolgt vom Namen der zu verwendenden Eigenschaft, der folgendermaßen codiert werden kann:

 Klasse Schülergespräch: () -> console.log "Hallo # {@ name}!" student = neuer Schüler () student.name = "Carolina" student.to speak () 

Mal sehen, wie das aussieht, wenn es direkt in der Konsole läuft:

coffeescript-clases-3.jpg

Sobald dies erledigt ist, wollen wir sehen, wie unser kompilierter Code für reines JavaScript lautet :

coffeescript-clases-4.jpg

Der Unterschied in der Codemenge ist bemerkenswert und nur, um eine Klasse mit einer Methode zu definieren, sie zu instanziieren und die erstellte Methode aufzurufen.

Rufen Sie eine andere Methode der Klasse auf

Es gibt Fälle, in denen die Definition unserer Klasse dazu führt, dass wir Methoden erstellen, die in anderen aufgerufen werden müssen. Um eine weniger repetitive und funktionalere Programmierung zu erzielen, sehen wir uns an, wie dies mit dem folgenden in CoffeeScript geschriebenen Code möglich ist.

 Klasse Schülergespräch: () -> console.log "Hallo, mein Name ist: # {@ name}!" @saberEdad () saberAdad: () -> console.log "Mein Alter ist: # {@year}" student = new Student () student.name = "Vanessa" student.edad = "23" student.speak () 

Mal sehen, wie wir in der Konsole das Ergebnis der Ausführung des vorherigen Codes sehen können:

coffeescript-clases-5.jpg

Bauherren

Bisher haben wir die Eigenschaften des Objekts definiert, nachdem es initialisiert wurde. Obwohl es eine praktikable Praxis ist, wenn wir Objekte mit vielen Eigenschaften erstellen müssen, kann es schwierig sein, diese zu pflegen.

See also  Passwort zurücksetzen Windows 10 April 2018 Update mit Sicherheitsfragen

In Fällen, in denen wir mit vielen Objekten und vielen Eigenschaften arbeiten müssen, ist es am besten, die Kraft der Konstruktoren nutzen zu können , mit denen wir unser Objekt direkt beleben können, ohne die verschiedenen Eigenschaften in einem “Handbuch” definieren zu müssen. Um einen Konstruktor zu definieren, müssen Sie eine Struktur verwenden, die der folgenden ähnelt:

 Klasse Student Konstruktor: (Name, Alter) -> @name = Name @ Alter = Alter Diskussion: () -> console.log "Hallo, mein Name ist: # {@name}!" @saberEdad () saberEdad: () - > console.log "Mein Alter ist: # {@ age}" 

Wenn wir uns die Definition der Klasse ansehen, ist der Konstruktor nur eine Methode. Das Interessante ist, dass wenn er Konstruktor genannt wird und CoffeeScript weiß, dass er eine spezielle Methode für unsere Klasse ist und sie als solche behandelt, das ist, wenn Lassen Sie uns die Instanzen unserer Klasse erstellen, die wir nicht explizit aufrufen müssen. Schauen wir uns ein Beispiel an, wie wir jetzt unsere Objekte definieren können:

 student = neuer Student ("Carolina", "26") student.speak () 

Wir sehen, dass wir weder den Eigenschaftsnamen noch die Eigenschaft age definieren mussten. Wir haben dem Konstruktor lediglich die Werte in der Reihenfolge übergeben, in der wir sie in unserer Klasse definieren, und er erledigt den Rest der Arbeit für uns. Natürlich ist dieses Beispiel sehr simpel, aber stellen Sie sich vor, dass wir Hunderte von Objekten mit Werten instanziieren müssen, die aus einer Persistenzquelle wie einer Datenbank stammen.

Sehen wir uns im folgenden Bild an, wie unser neuer Code aussieht, sobald er kompiliert und in reines JavaScript übersetzt wurde :

coffeescript-clases-6.jpg

In diesem Fall wird bei der Erstellung der in CoffeeScript definierten Methode der Schlüsselwortkonstruktor von JavaScript nicht verwendet. An diesem Punkt wird der Unterschied zwischen den Sprachen sowie die Lösung in etwa 12 oder 13 Zeilen auf direktere Weise erkannt In JavaScript werden sie zu mehr als 20 Zeilen , was bei der Erstellung großartiger Anwendungen zu berücksichtigen ist.

Erbe

Einer der Vorteile der objektorientierten Programmierung besteht darin, dass wir Klassen erben können. Dies bedeutet, dass wir neue Klassen erstellen und die Funktionen von übergeordneten Klassen übernehmen können, wodurch sich die Anzahl der Elemente verringert, die wir von Grund auf neu erstellen müssen Alle Methoden und Eigenschaften der Elternklasse erben. In der Tochterklasse oder der neuen Klasse müssen nur die Methoden und Eigenschaften definiert werden, die für diese Klasse eindeutig sind.

See also  So verbessern Sie SEO in Wordpress schnell und einfach

Vielleicht ist dieses Konzept für diejenigen, die noch nicht mit der Programmierung vertraut sind, etwas verwirrend oder komplex. Wenn wir jedoch das folgende Beispiel betrachten, werden wir sicherlich ein wenig klarer sein, was wir erreichen können.

 Klasse Person Wissen Alter: () -> console.log "Mein Alter ist: # {@ age}" Klasse Student erweitert Person Diskussion: () -> console.log "Hallo # {@ name}!" student = neuer Student () student.edad = "30" student.name = "Jon" student.saberAge () 

Bei der Analyse sehen wir, wie wir eine Klasse Person haben und diese hat eine Methode saberAdad (), mit der wir das Alter der Instanz über die Konsole ausgeben. Wenn wir die Klasse Student erstellen, sagen wir, dass sie so implizit von Person geerbt wird, da unsere neue Klasse die hat knowledgeAge- Methode () , obwohl sie in der Klasse nicht definiert ist.

Sehen wir uns im folgenden Bild an, wie unser neuer Code aussieht, sobald er kompiliert und in reines JavaScript übersetzt wurde :

coffeescript-clases-7.jpg

Wir können dann sehen, dass unser JavaScript- Code für die Definition der Vererbung ziemlich komplex ist, aber bei Verwendung von CoffeeScript ist die Optimierung extrem hoch. Wenn wir das Dienstprogramm sehen, stellen Sie sich sehr komplexe Klassen als Komponenten von Anwendungen vor, die uns in unseren neuen Klassen mehrere Funktionen bieten können, ohne mehr als den spezifischen Code schreiben zu müssen, den wir wirklich benötigen.

Damit haben wir dieses Tutorial abgeschlossen, da wir sehen, dass die Welt der Klassen in CoffeeScript nicht so komplex ist, wie es auf den ersten Blick schien. Alles liegt darin, die Grundlagen und die Philosophie der objektorientierten Programmierung zu kennen. Wir können Ihnen versichern, dass durch die Verwendung von CoffeeScript als Sprache die Komplexität der Verwendung von Klassen in JavaScript erheblich abnimmt, da die Syntax Sprachen wie Python oder Ruby sehr viel ähnlicher ist , was die Sprache eleganter und weniger verwirrend macht Zeit, den entwickelten Code zu lesen.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *