Evo nekoliko praktičnih JavaScript objekata koji imaju enkapsulaciju

Discover Functional JavaScript proglašen je jednom od najboljih knjiga o funkcionalnom programiranju od strane BookAuthority !

Kapsulacija znači skrivanje informacija. Radi se o skrivanju što je više moguće unutarnjih dijelova objekta i izlaganju minimalnog javnog sučelja.

Najjednostavniji i najelegantniji način za stvaranje enkapsulacije u JavaScript-u je upotreba zatvarača. Zatvaranje se može stvoriti kao funkcija s privatnom državom. Kada stvaramo mnoštvo zatvarača koji dijele isto privatno stanje, mi stvaramo objekt.

Izgradit ću nekoliko objekata koji mogu biti korisni u aplikaciji: Stack, Queue, Event Emitter i Timer. Sve će se graditi pomoću tvorničkih funkcija.

Počnimo.

Stog

Stog je struktura podataka s dvije glavne operacije: pushza dodavanje elementa u zbirku i popza uklanjanje najnovijeg dodanog elementa. Dodaje i uklanja elemente prema principu Last In First Out (LIFO).

Pogledajte sljedeći primjer:

let stack = Stack(); stack.push(1); stack.push(2); stack.push(3); stack.pop(); //3 stack.pop(); //2

Primijenimo stog pomoću tvorničke funkcije.

function Stack(){ let list = []; function push(value){ list.push(value); } function pop(){ return list.pop(); } return Object.freeze({ push, pop }); }

Objekt stoga ima dvije javne metode push()i pop(). Unutarnje stanje može se promijeniti samo ovim metodama.

stack.list; //undefined

Ne mogu izravno modificirati unutarnje stanje:

stack.list = 0;//Cannot add property list, object is not extensible

Više možete pronaći u knjizi Otkrivanje funkcionalnog JavaScript-a.

Za više o primjeni tehnika funkcionalnog programiranja u Reactu pogledajte Functional React .

Naučite funkcionalni React , na način temeljen na projektu, uz Funkcionalnu arhitekturu s Reactom i Reduxom .

Slijedite na Twitteru