Descoperiți JavaScript funcțional a fost numit unul dintre cele mai bune cărți noi de programare funcțională de BookAuthority!

Incapsularea înseamnă ascunderea informațiilor. Este vorba despre ascunderea cât mai mult posibil a părților interne ale obiectului și expunerea unei interfețe publice minime.

Cea mai simplă și mai elegantă modalitate de a crea încapsulare în JavaScript este folosirea închiderilor. O închidere poate fi creată ca o funcție cu statul privat. Când creăm multe închideri care împărtășesc același stat privat, creăm un obiect.

Voi construi câteva obiecte care pot fi utile într-o aplicație: Stack, Queue, Event Emitter și Timer. Toate vor fi construite folosind funcțiile din fabrică.

Să începem.

Grămadă

Stiva este o structură de date cu două operații principale: push pentru adăugarea unui element la colecție și pop pentru eliminarea celui mai recent element adăugat. Acesta adaugă și elimină elemente conform principiului Last In First Out (LIFO).

Uită-te la următorul exemplu:

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

Să implementăm stiva folosind o funcție din fabrică.

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

Obiectul stivă are două metode publice push() și pop(). Starea internă poate fi schimbată numai prin aceste metode.

stack.list; //undefined

Nu pot modifica direct starea internă:

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

Puteți găsi mai multe în Descoperiți JavaScript funcțional carte.

Pentru mai multe despre aplicarea tehnicilor de programare funcționale în React, aruncați o privire Reactie functionala.

Învăța funcțional React, într-un mod bazat pe proiecte, cu Arhitectură funcțională cu React și Redux.

Urmăriți pe Twitter