Her er nogle praktiske JavaScript-objekter, der har indkapsling

Discover Functional JavaScript blev udnævnt til en af ​​de bedste nye funktionelle programmeringsbøger af BookAuthority !

Indkapsling betyder skjult information. Det handler om at skjule så meget som muligt af objektets interne dele og udsætte en minimal offentlig grænseflade.

Den enkleste og mest elegante måde at oprette indkapsling i JavaScript på er at bruge lukninger. En lukning kan oprettes som en funktion med privat tilstand. Når vi opretter mange lukninger, der deler den samme private stat, opretter vi et objekt.

Jeg skal bygge et par objekter, der kan være nyttige i en applikation: Stack, Kø, Event Emitter og Timer. Alle bygges ved hjælp af fabriksfunktioner.

Lad os begynde.

Stak

Stack er en datastruktur med to hovedoperationer: pushtil at føje et element til samlingen og poptil at fjerne det senest tilføjede element. Den tilføjer og fjerner elementer i henhold til Last In First Out (LIFO) -princippet.

Se på det næste eksempel:

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

Lad os implementere stakken ved hjælp af en fabriksfunktion.

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

Stakobjektet har to offentlige metoder push()og pop(). Den interne tilstand kan kun ændres ved hjælp af disse metoder.

stack.list; //undefined

Jeg kan ikke ændre den interne tilstand direkte:

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

Du kan finde mere i Discover Functional JavaScript-bogen.

For mere om anvendelse af funktionelle programmeringsteknikker i React, se på Functional React .

Lær funktionel reaktion på en projektbaseret måde med funktionel arkitektur med React og Redux .

Følg på Twitter