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.