Klassen gebruiken in CoffeeScript

Inhoudsopgave
Een van de belangrijkste dingen die ons helpen onze toepassing te definiëren, is het gebruik van klassen, omdat we hiermee objecten kunnen definiëren die uit het echte leven zijn gemodelleerd en hun overgang naar de digitale wereld veel gemakkelijker wordt.
In KoffieScript het bouwen van een klasse en het instantiëren ervan is heel eenvoudig, in feite is de syntaxis ervan zo minimalistisch dat het voor ons heel gemakkelijk is om het te onthouden, in plaats daarvan maken we een definitie van klassen direct in JavaScript Het is iets omslachtiger en dat kan langer duren dan verwacht.
VereistenOm deze tutorial te voltooien, moeten we een functionele installatie hebben van: KoffieScript, we hebben ook machtigingen nodig om bestanden te schrijven en uit te voeren KoffieScript op de computer waarop we de tutorial doen. We hebben een teksteditor nodig om de code te kunnen schrijven die we gaan uitvoeren, zodat we iets blijvends hebben en niet alles in de console.
Een klasse is niets meer dan een naam en enkele eigenschappen die het gedrag ervan bepalen, op basis van dat concept kunnen we een klasse definiëren in KoffieScript als volgt:
 klas Student
Dat is alles wat we moeten doen, op een eenvoudige manier hebben we onze eerste klas al ingebouwd KoffieScriptWat gebeurt er als we een eigenschap willen opnemen om deze te kunnen gebruiken, omdat we gewoon een instantie maken en die eigenschap toevoegen, laten we eens kijken:
 student = nieuwe student () student.name = "Carolina"
Laten we nu eens kijken hoe in de volgende afbeelding als KoffieScript transformeer al onze code in JavaScript pure bij het compileren, laten we de opdracht hiervoor onthouden, die zou zijn: koffie -c bestandsnaam.koffie:

We zien dan hoe de syntaxis van JavaScript pure is veel uitgebreider en complexer dan de drie regels code die we hebben gebruikt KoffieScript, dit is de kracht van deze taal waarmee we ons echt kunnen wijden aan onze applicatie.
Een van de dingen die het meest worden gebruikt in de Object georiënteerd programmeren is om methoden toe te voegen aan klassen, omdat deze ons, naast de eigenschappen, een idee geven van wat ons object wel of niet kan doen, bijvoorbeeld als we doorgaan met de Studentenklas We kunnen er een methode voor maken waarin het object een bericht uitdrukt, laten we eens kijken hoe we dit kunnen bereiken:
 klas Leerling spreekt: -> console.log "Hallo wereld!"
Als we dan een object van dezelfde klasse maken, kunnen we dezelfde methode al gebruiken. Bijvoorbeeld:
 student = nieuw Studentstudent.talk ()
Hiermee zorgen we ervoor dat onze methode vele malen kan worden gebruikt, zolang we maar meerdere instanties maken, wat onze code een van de kenmerken van objectoriëntatie geeft, namelijk hergebruiken. Nu gaan we onze code opnieuw definiëren zodat deze argumenten accepteert, hiermee kunnen we veel meer doen dan een simpele print per console, laten we eens kijken:
 klas Student talk: (naam) -> console.log "Hallo # {naam}!" student = nieuw Studentstudent.talk ("Carolina")
Laten we eens kijken hoe dit zich vertaalt naar code JavaScript wanneer we compileren:

Iets belangrijks dat we kunnen doen bij het construeren van objecten die zijn afgeleid van klassen, is om hun waarde tijdens hun leven in onze applicatie te behouden, hiermee kunnen we componenten maken die via methoden toegang hebben tot hun eigenschappen en ze dus in verschillende delen van onze applicatie gebruiken.
Om een ​​eigenschap te manipuleren binnen KoffieScript we hoeven alleen maar de te gebruiken @ operator gevolgd door de naam van de te gebruiken eigenschap, die als volgt kan worden gecodeerd:
 klas Leerling spreekt: () -> console.log "Hallo # {@ naam}!" student = nieuwe Leerling () student.naam = "Carolina" student. spreek ()
Laten we eens kijken hoe dit eruit ziet wanneer het rechtstreeks in de console wordt uitgevoerd:

Zodra dit is gebeurd, laten we eens kijken hoe onze gecompileerde code eruit ziet JavaScript zuiver:

Het verschil in de hoeveelheid code is opmerkelijk en alleen om zoiets eenvoudigs te doen als het definiëren van een klasse met een methode, deze vervolgens te instantiëren en de gemaakte methode aan te roepen.
Er zijn gevallen dat de definitie van onze klasse ons ertoe brengt om methoden te creëren die binnen anderen moeten worden aangeroepen, dit om een ​​minder repetitieve en meer functionele programmering te bereiken, laten we eens kijken hoe we dit kunnen doen door de volgende code te gebruiken die is geschreven in KoffieScript.
 klas Leerling spreekt: () -> console.log "Hallo mijn naam is: # {@ naam}!" @knowAge () knowAge: () -> console.log "Mijn leeftijd is: # {@ age}" student = nieuw Student () student.name = "Vanessa" student.age = "23" student.talk ()
Laten we eens kijken hoe we in de console het resultaat van de uitvoering van de vorige code kunnen zien:

Tot nu toe hebben we de eigenschappen van het object gedefinieerd nadat we het hebben geïnitialiseerd, hoewel het een haalbare praktijk is, wanneer we objecten met veel eigenschappen moeten maken, kan dit moeilijk te onderhouden zijn.
Het beste in gevallen waarin we met veel objecten en veel eigenschappen moeten werken, is om de kracht van te kunnen gebruiken BouwersHiermee kunnen we ons object direct tot leven brengen zonder de verschillende eigenschappen op een "handmatige" manier te moeten definiëren. Gebruik een structuur die lijkt op de volgende om een ​​constructor te definiëren:
 class Student constructor: (naam, leeftijd) -> @naam = naam @leeftijd = leeftijd spreek: () -> console.log "Hallo mijn naam is: # {@ naam}!" @saberEdad () saberEdad: () -> console.log "Mijn leeftijd is: # {@ leeftijd}"
Als we kijken naar de definitie van de klasse, is de constructor niets meer dan een methode, het interessante is dat wanneer deze wordt aangeroepen bouwer al KoffieScript het weet dat het een speciale methode is voor onze klasse en het zal het als zodanig behandelen, daarom hoeven we het niet expliciet aan te roepen wanneer we de instanties van onze klasse gaan maken. Laten we een voorbeeld bekijken van hoe we onze objecten nu kunnen definiëren:
 student = nieuwe student ("Carolina", "26") student.sprekend ()
We zien dat we de eigenschap niet hoefden te definiëren Naam noch het eigendom leeftijd, we geven de waarden gewoon door aan de constructor in de volgorde waarin we ze in onze klasse definiëren en het doet de rest van het werk voor ons. Natuurlijk is dit voorbeeld erg simplistisch, maar laten we ons voorstellen dat we honderden objecten moeten instantiëren met waarden die afkomstig zijn van een persistentiebron zoals een Database.
Laten we in de volgende afbeelding zien hoe onze nieuwe code eruitziet als deze is gecompileerd en vertaald naar JavaScript zuiver:

In dit geval zien we dat JavaScript gebruikt het trefwoord niet bouwer bij het construeren van de methode die we definiëren in KoffieScript, op dit punt beginnen we op een meer directe manier het verschil tussen de talen te zien, naast wat we hebben opgelost in ongeveer 12 of 13 regels code, in JavaScript meer worden dan 20 regels, iets om rekening mee te houden als we grote applicaties maken.
Een van de voordelen van het werken met objectgeoriënteerd programmeren is dat we kunnen doen: erfenis van klassen, dit betekent dat je nieuwe klassen kunt maken en de functionaliteit van klassen kunt gebruiken ouders, hiermee verminderen we het aantal elementen dat we helemaal opnieuw moeten maken, omdat we bij het erven alle methoden en eigenschappen van de bovenliggende klasse nemen, in de kindklasse of de nieuwe klasse hoeven we alleen de methoden en eigenschappen te definiëren die zijn er exclusief voor.
Misschien is dit concept voor degenen die nog niet bekend zijn met programmeren een beetje verwarrend of complex, maar door naar het volgende voorbeeld te kijken, zullen we zeker een beetje duidelijker zijn over wat we kunnen bereiken.
 klas Te kennen persoon Leeftijd: () -> console.log "Mijn leeftijd is: # {@ leeftijd}" klas Student breidt Spreekpersoon: () -> console.log "Hallo # {@ naam}!" student = nieuw Student () student.age = "30" student.name = "Jon" student.knowAge ()
Analyseren we zien hoe we een klas hebben Persoon en deze heeft een methode kennisLeeftijd () waarmee we per console de leeftijd van de instantie afdrukken bij het maken van de klasse Student we vertellen hem dat hij erft van Persoon dus impliciet heeft onze nieuwe klasse de methode al kennisLeeftijd () zelfs als het niet in de klasse is gedefinieerd.
Laten we in de volgende afbeelding zien hoe onze nieuwe code eruitziet als deze is gecompileerd en vertaald naar JavaScript zuiver:

We kunnen dan zien dat onze code JavaScript is vrij complex voor het definiëren van overerving, maar bij gebruik van KoffieScript de optimalisatie ervan is extreem hoog. Als we het hulpprogramma zien, laten we ons dan zeer complexe klassen voorstellen als applicatiecomponenten die ons meerdere functionaliteiten kunnen geven in onze nieuwe klassen, zonder dat we meer hoeven te schrijven dan de specifieke code die we echt nodig hebben.
Hiermee zijn we klaar met deze tutorial, omdat we de wereld van klassen zien in KoffieScript Het is niet zo ingewikkeld als het op het eerste gezicht leek, het ligt allemaal in het kennen van de grondbeginselen en filosofie van objectgeoriënteerd programmeren. Wat we kunnen verzekeren is dat het gebruik van KoffieScript als een taal, maakt de complexiteit van het gebruik van klassen in JavaScript aanzienlijk dalen omdat de syntaxis veel dichter bij talen zoals Python of Robijn ze maken het veel eleganter en minder verwarrend bij het lezen van de ontwikkelde code.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave