Aquí hay algunos objetos prácticos de JavaScript que tienen encapsulación

Discover Functional JavaScript fue nombrado uno de los mejores libros nuevos de programación funcional por BookAuthority .

La encapsulación significa ocultar información. Se trata de ocultar tanto como sea posible las partes internas del objeto y exponer una interfaz pública mínima.

La forma más sencilla y elegante de crear encapsulamiento en JavaScript es mediante cierres. Se puede crear un cierre en función del estado privado. Al crear muchos cierres que comparten el mismo estado privado, creamos un objeto.

Voy a crear algunos objetos que pueden ser útiles en una aplicación: pila, cola, emisor de eventos y temporizador. Todos se construirán utilizando funciones de fábrica.

Empecemos.

Apilar

Stack es una estructura de datos con dos operaciones principales: pushpara agregar un elemento a la colección y poppara eliminar el elemento agregado más reciente. Agrega y elimina elementos de acuerdo con el principio Last In First Out (LIFO).

Mira el siguiente ejemplo:

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

Implementemos la pila usando una función de fábrica.

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

El objeto de pila tiene dos métodos públicos push()y pop(). El estado interno solo se puede cambiar mediante estos métodos.

stack.list; //undefined

No puedo modificar directamente el estado interno:

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

Puede encontrar más en el libro Discover Functional JavaScript.

Para obtener más información sobre la aplicación de técnicas de programación funcional en React, eche un vistazo a Functional React .

Aprenda React funcional , de una manera basada en proyectos, con Arquitectura funcional con React y Redux .

Seguir en Twitter