Programowanie obiektowe JS, czy tak ważne?

0

Witam
Mam pytanie, bo często spotykam się z informacją, że programowanie obiektowe(prototype, constructor, this. , new) jest metodą, która w JS przechodzi do lamusa, a są używane inne metody dziedziczenia. Czy mógłby się na ten temat wypowiedzieć ktoś doświadczony?(podkreślam, jestem laikiem, stąd pytania mogą być głupie ale wole je zadać).

1

Od ES16 masz na to syntax sugar (class itd.)

Ale nie wiem czy o to Ci chodzi

2
Taxo3 napisał(a):

Witam
Mam pytanie, bo często spotykam się z informacją, że programowanie obiektowe(prototype, constructor, this. , new) jest metodą, która w JS przechodzi do lamusa, a są używane inne metody dziedziczenia.

To nie tak.
Trochę mieszasz. Raczej istnieje kilka niezależnych trendów.

programowanie obiektowe

Teraz jest trend do tego, żeby iść bardziej w programowanie funkcyjne niż obiektowe. Tylko trzeba zaznaczyć, że to nie są przeciwieństwa, można pisać kod, który będzie jednocześnie funkcyjny jak i obiektowy.

Przy czym programowanie funkcyjne nie polega na tym tylko, że robisz sobie funkcje, ale te funkcje powinny być "czyste"
https://pl.wikipedia.org/wiki/Programowanie_funkcyjne

(prototype

JS ma dziedziczenie oparte o prototypach, jednak dużo programistów i tak woli dziedziczenie oparte o klasy, więc do JSa dodano klasy. Więc owszem, zamiast prototype będziesz miał teraz zwykle już class (ale pod spodem to i tak prototypy).

this, new

Używanie this czy new to już jest inna sprawa. Niektórzy eliminują użycie this choćby przez użycie domknięć(closures), co do new to też niektórzy robią fabryki (wzorzec projektowy) i tworzą obiekty wywołując funkcję typu createFoo zamiast new Foo (czasem fabryka może wołać new pod spodem, czasem nie).

a są używane inne metody dziedziczenia

mylisz programowanie obiektowe z dziedziczeniem. Co do samego programowania obiektowego to jest ogólna tendencja (wykraczająca poza JS), żeby pisząc OOP unikać dziedziczenia, a preferować kompozycję ("favor composition over inheritance")

czy tak ważne?

Wszystko jest ważne, bo ze wszystkimi metodami programowania możesz się styknąć w kodzie napisanym przez kogoś innego, plus to, że wiele technik programowania jest przydatnych. Co nie znaczy, że wszystkiego naraz masz się uczyć, tym niemniej - na dłuższą metę znajomość wszystkiego może się przydać. Również po to, żeby wiedzieć, kiedy co wybrać.

0

Jeśli teraz miałbyś wybierać co się uczyć to wybrałbyś syntax sugar czy klasyczne JS obiektowe? Które jest bardziej praktyczne i obecnie więcej używane?

Dzięki LukeJL za odpowiedź.

2

Jeśli teraz miałbyś wybierać co się uczyć to wybrałbyś syntax sugar czy klasyczne JS obiektowe?

Zrozumieć klasyczne prototypy, używać lukru składniowego class* (btw to już nie do końca lukier składniowy odkąd mamy prywatne pola (np. w Node 12LTS)).


* oczywiście tylko zamiast gołych prototypów, nie jako jedyną technikę

1 użytkowników online, w tym zalogowanych: 0, gości: 1