Potřebujete kurzy v JS/TS?

Pokud začínáte jako vývojář, můžete narazit na tyto protichůdné myšlenkové školy:mám napsat "funkční styl" s jeho "čistými funkcemi" nebo použijte "objektově orientované třídy" ?

Odpověď by byla opravdu dlouhá a toto bude jen rychlý tip.

Předem je důležité vědět, že Javascript (a následně TypeScript ) není ani funkční ani objektově orientovaný jazyk . Má prvky obou a porušuje důležité smlouvy obou. Viz poslední odstavec:„Pouze pro zvědavce!“ .

Příznaky nepotřebnosti třídy

Funkce a class nám skutečně dává přístup k this v libovolném z definovaných functions . Když některé nebo více vašich metod třídy nemá přístup k this a prošly pouze parametry a také vrátit výsledek, pak budete potřebovat function . Ještě lepší, když můžete vytvořit function čisté (jinými slovy žádný z předávaných parametrů není mutován)...

Algoritmus, který to refaktoruje

  1. Najděte metodu třídy, která nepřistupuje k this . Extrahujte jej do metody a aktualizujte závislé metody.
  2. Znovu zkontrolujte třídu, pokud změněné metody již nemají přístup k this :přesuňte je také.
  3. Pokud má každá metoda přístup this máte skutečnou třídu, která ve skutečnosti spravuje svůj vlastní stav.

Pouze pro zvědavce

Klasický příklad porušení funkčního paradigmatu je to na poli .sort() metoda mutuje pole, zatímco .map() vám vrátí novou instanci pole. To je nekonzistentní a vytváří pravidelné problémy.

Na druhou stranu objekty vytvořené z tradičních tříd „vlastní“ své vlastní funkce, zatímco v Javascriptu můžete předat function z object a ztratíte jeho this . Můžete také svázat function na úplně jiný object . Když vývojář pocházející ze skutečného objektově orientovaného pozadí zaznamená tento fenomén, je slyšet mnoho frustrace.

Otázky, chyby nebo si přejete příklady? Blogování a učení je společné úsilí, potřebuji vaši pomoc, abych vám pomohl. 🤝 Dejte mi vědět do komentářů! Na zdraví!