Wpis z mikrobloga

Mirełki, ES6 wprowadziła klasy. Powiedzcie mi, czy od tej pory konieczne jest ich używanie? Od tej pory posługiwanie się (jawnie) prototypami jest już złą praktyką? Gdzieś czytałam, że klasy wprowadzono jako ułatwienie dla osób, które dotychczas pracowały w Javie. Jak to rozumieć?

#javascript #es6 #pytanie
  • 7
  • Odpowiedz
czy od tej pory konieczne jest ich używanie?


@Melisandre: nie, to po prostu kolejna opcja

Od tej pory posługiwanie się (jawnie) prototypami jest już złą praktyką?


@Melisandre: nie :)

klasy wprowadzono jako ułatwienie dla osób, które dotychczas pracowały w Javie. Jak to rozumieć?


@Melisandre: w javie są klasy, więc osoby które je znają, poradzą sobie z nimi w js ;)
  • Odpowiedz
Od tej pory posługiwanie się (jawnie) prototypami jest już złą praktyką?


@Melisandre: nie jest, aczkolwiek od kiedy zacząłem używać klas nigdy nie miałem potrzeby jawnego użycia dziedziczenia prototypowego (bo warto pamiętać, że klasy ES6 pod spodem i tak używają prototypów)
  • Odpowiedz
@Melisandre: @epi:

Korzystanie z klas w "tradycyjnej" formie czyli tworzenie struktur drzewiastych klas jest raczej obecnie powoli "deprecated" - bo samo dziedziczenie staje się powoli antywzorcem. Natomiast wykorzystywanie samych klas bez dziedziczenia jest jak najbardziej spoko, uczytelniają kod, zmniejszają koszt wejścia z technologie i pomagają ułożyć logikę.
  • Odpowiedz
@Melisandre: @epi: @Marmite: @larvaexotech: a ja jestem purystą :) JS to jezyk prototypowany i stworzony do programowania funkcyjnego - jedna funkcja robi jedną, określoną rzecz z danymi. Klasy w JS to dalej prototypy, private to fikcja, po co więc udawać, że jest inaczej? Piszmy kod tak jak Bóg i Douglas Crocford przykazał
  • Odpowiedz
@zenon1002: Wychodząc z takiego założenia to możemy też nie używać arrow functions, destructuringu a nawet importów. Klasy nie są złe jeśli używamy ich z rozwagą, tzn. tylko tam gdzie faktycznie stosujemy instancje i podnoszenie jej przez operator new() i bez dziedziczenia.

Choć bawiąc się zuaważyłem, stosowanie klas do budowania struktury naszej aplikacji też jest ciekawe w połączeniu z dependency injection i ioc containerem (np. to jest ciekawa implementacja https://github.com/inversify/InversifyJS). Przy takim
  • Odpowiedz