Korzystanie z klas w CoffeeScript

Spisie treści
Jedną z najważniejszych rzeczy, które pomagają nam zdefiniować naszą aplikację, jest wykorzystanie klas, ponieważ za ich pomocą możemy definiować obiekty zamodelowane z rzeczywistego życia, a ich przejście do świata cyfrowego staje się znacznie łatwiejsze.
w CoffeeScript budowanie klasy i tworzenie jej instancji jest bardzo proste, w rzeczywistości jej składnia jest tak minimalistyczna, że ​​bardzo łatwo ją zapamiętać, zamiast tego tworzymy definicję klas bezpośrednio w JavaScript Jest to coś nieco bardziej kłopotliwego i może nam to zająć więcej czasu, niż się spodziewaliśmy.
WymaganiaAby ukończyć ten samouczek, musimy mieć funkcjonalną instalację CoffeeScript, potrzebujemy również uprawnień do zapisywania plików i wykonywania CoffeeScript na komputerze, na którym robimy samouczek. Potrzebujemy edytora tekstu, aby móc napisać kod, który zamierzamy wykonać, abyśmy mieli coś trwałego, a nie wszystko w konsoli.
Klasa to nic innego jak nazwa i pewne właściwości, które definiują jej zachowanie, na podstawie tego pojęcia możemy zdefiniować klasę w CoffeeScript następująco:
 klasa uczeń
To wszystko, co musimy zrobić, w prosty sposób zbudowaliśmy już naszą pierwszą klasę w CoffeeScriptA teraz, co się stanie, jeśli chcemy dołączyć właściwość, aby móc z niej korzystać, ponieważ po prostu tworzymy instancję i dodajemy tę właściwość, zobaczmy:
 student = nowy Student () student.name = "Karolina"
Zobaczmy teraz, jak na poniższym obrazku jako CoffeeScript przekształć cały nasz kod w JavaScript czysty podczas kompilacji, zapamiętajmy polecenie dla tego, które byłoby kawa -c nazwapliku.kawa:

Zauważamy wtedy, jak składnia JavaScript pure jest znacznie bardziej rozbudowana i złożona niż trzy wiersze kodu, które zrobiliśmy w CoffeeScript, to jest siła tego języka, która pozwala nam naprawdę poświęcić się naszej aplikacji.
Jedna z rzeczy, które są najczęściej używane w Programowanie obiektowe jest dodanie metod do klas, ponieważ te, oprócz właściwości, dadzą nam wyobrażenie o tym, co nasz obiekt może, a czego nie może zrobić, na przykład jeśli będziemy kontynuować z Klasa studencka Możemy stworzyć dla niego metodę, w której jego obiekt wyraża komunikat, zobaczmy jak to osiągnąć:
 klasa Uczeń mówi: -> console.log "Witaj świecie!"
Jeśli następnie utworzymy obiekt tej samej klasy, moglibyśmy już użyć tej samej metody. Na przykład:
 student = nowy Studentstudent.talk ()
Dzięki temu upewniamy się, że nasza metoda może być używana wielokrotnie, o ile wykonamy kilka instancji, co nadaje naszemu kodowi jedną z cech orientacji obiektowej, czyli ponowne użycie. Teraz przedefiniujemy nasz kod tak, aby akceptował argumenty, dzięki temu możemy zrobić znacznie więcej niż zwykły wydruk z konsoli, zobaczmy:
 klasa Student rozmowa: (imię) -> console.log "Witaj # {imię}!" student = nowy Studentstudent.talk ("Karolina")
Zobaczmy, jak to wszystko przekłada się na kod JavaScript kiedy kompilujemy:

Coś ważnego, co możemy zrobić podczas konstruowania obiektów wywodzących się z klas, to zachowanie ich wartości podczas ich życia w naszej aplikacji, dzięki temu możemy tworzyć komponenty, które mogą uzyskiwać dostęp do ich właściwości za pomocą metod, a tym samym używać ich w różnych częściach naszej aplikacji.
W celu manipulowania właściwością wewnątrz CoffeeScript musimy tylko użyć @operator po której następuje nazwa właściwości do użycia, która może być zakodowana w następujący sposób:
 class Uczeń mówi: () -> console.log „Witaj # {@ nazwa}!” uczeń = nowy Uczeń () uczeń.nazwa = „Karolina” uczeń. mów ()
Zobaczmy, jak to wygląda po uruchomieniu bezpośrednio w konsoli:

Gdy to zrobisz, zobaczmy, jak wygląda nasz skompilowany kod JavaScript czysty:

Różnica w ilości kodu jest znacząca i wystarczy zrobić coś tak prostego, jak zdefiniowanie klasy za pomocą metody, a następnie utworzenie jej instancji i wywołanie utworzonej metody.
Zdarzają się sytuacje, że definicja naszej klasy prowadzi nas do tworzenia metod, które muszą być wywoływane w ramach innych, to aby uzyskać mniej powtarzalne i bardziej funkcjonalne programowanie, zobaczmy jak możemy to zrobić za pomocą poniższego kodu napisanego w CoffeeScript.
 class Student mówi: () -> console.log "Cześć mam na imię: # {@ name}!" @knowAge () knowAge: () -> console.log "Mój wiek to: # {@wiek}" student = nowy Student () student.name = "Vanessa" student.age = "23" student.talk ()
Zobaczmy jak w konsoli możemy zobaczyć wynik wykonania poprzedniego kodu:

Do tej pory definiowaliśmy właściwości obiektu po jego zainicjowaniu, chociaż jest to realna praktyka, gdy musimy tworzyć obiekty z wieloma właściwościami, może to być trudne do utrzymania.
Najlepszą rzeczą w przypadkach, gdy musimy pracować z wieloma obiektami i wieloma właściwościami, jest możliwość wykorzystania mocy budowniczowieDzięki nim możemy bezpośrednio ożywić nasz obiekt, bez konieczności definiowania różnych właściwości w „ręczny” sposób. Aby zdefiniować konstruktora, użyj struktury podobnej do następującej:
 class Konstruktor ucznia: (imię, wiek) -> @imię = imię @wiek = wiek mów: () -> console.log "Cześć mam na imię: # {@ imię}!" @saberEdad () saberEdad: () -> console.log "Mój wiek to: # {@wiek}"
Jeśli spojrzymy na definicję klasy, konstruktor to nic innego jak metoda, ciekawostką jest to, że kiedy jest wywoływana budowniczy już CoffeeScript wie, że jest to specjalna metoda dla naszej klasy i tak ją potraktuje, dlatego tworząc instancje naszej klasy nie musimy jej jawnie wywoływać. Zobaczmy przykład, jak możemy teraz zdefiniować nasze obiekty:
 student = nowy Student ("Karolina", "26") student.mówiący ()
Widzimy, że nie musieliśmy definiować własności Nazwa ani własność wiek, po prostu przekazujemy wartości do konstruktora w kolejności, w jakiej je definiujemy w naszej klasie, a on wykonuje resztę pracy za nas. Oczywiście ten przykład jest bardzo uproszczony, ale wyobraźmy sobie, że musimy tworzyć instancje setek obiektów z wartościami, które pochodzą ze źródła trwałości, takiego jak Baza danych.
Zobaczmy na poniższym obrazku, jak wygląda nasz nowy kod po skompilowaniu i przetłumaczeniu na JavaScript czysty:

W tym przypadku widzimy, że JavaScript nie używa słowa kluczowego budowniczy przy konstruowaniu metody, którą definiujemy w CoffeeScript, w tym momencie zaczynamy widzieć w bardziej bezpośredni sposób różnicę między językami, oprócz tego, co rozwiązaliśmy w około 12 lub 13 wierszach kodu, w JavaScript stać się więcej niż 20 linii, coś, co należy wziąć pod uwagę podczas tworzenia dużych aplikacji.
Jedną z zalet pracy z programowaniem obiektowym jest to, że możemy to zrobić dziedzictwo klas, oznacza to możliwość tworzenia nowych klas i przejmowania funkcjonalności klas rodzice, dzięki temu zmniejszamy liczbę elementów, które musimy stworzyć od podstaw, ponieważ dziedzicząc pobieramy wszystkie metody i właściwości klasy nadrzędnej, w klasie potomnej lub nowej musimy tylko zdefiniować metody i właściwości, które są wyłącznie dla niego.
Być może dla tych, którzy są nowicjuszami w programowaniu, ta koncepcja jest nieco zagmatwana lub złożona, jednak patrząc na poniższy przykład z pewnością będziemy trochę jaśniejsi, co możemy osiągnąć.
 class Osoba do poznania Wiek: () -> console.log "Mój wiek to: # {@wiek}" class Student rozszerza Osoba do mówienia: () -> console.log "Witaj # {@name}!" student = new Student () student.age = "30" student.name = "Jon" student.knowAge ()
Analizując widzimy, jak mamy zajęcia Osoba a ten ma metodę Wiedza () za pomocą którego wypisujemy przez konsolę wiek instancji podczas tworzenia klasy Student mówimy mu, że dziedziczy po Osoba więc domyślnie nasza nowa klasa ma już metodę Wiedza () nawet jeśli nie jest zdefiniowany w klasie.
Zobaczmy na poniższym obrazku, jak wygląda nasz nowy kod po skompilowaniu i przetłumaczeniu na JavaScript czysty:

Widzimy wtedy, że nasz kod JavaScript jest dość skomplikowany do definiowania dziedziczenia, ale przy użyciu CoffeeScript jego optymalizacja jest niezwykle wysoka. Jeśli spojrzymy na narzędzie, wyobraźmy sobie bardzo złożone klasy jako komponenty aplikacji, które mogą zapewnić nam wiele funkcji w naszych nowych klasach, bez konieczności pisania więcej niż tylko konkretnego kodu, którego naprawdę potrzebujemy.
Na tym zakończyliśmy ten samouczek, ponieważ widzimy świat zajęć w CoffeeScript Nie jest tak skomplikowane, jak mogłoby się wydawać na pierwszy rzut oka, wszystko polega na znajomości podstaw i filozofii programowania obiektowego. Możemy zapewnić, że korzystanie z CoffeeScript jako język sprawia, że ​​złożoność korzystania z klas w JavaScript znacznie spaść, ponieważ jego składnia jest znacznie bliższa językom takim jak Pyton lub Rubin sprawiają, że czytanie opracowanego kodu jest znacznie bardziej eleganckie i mniej zagmatwane.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave