Автор оригинала: FreeCodeCamp Community Member.
Откройте для себя функциональный JavaScript был назван одним из Лучшие новые функциональные программирования книги BookAuthority !
Инкапсуляция означает скрытие информации. Речь идет как можно больше сокрытия внутренних частей объекта и обнаружив минимальный открытый интерфейс.
Самый простой и элегантный способ создания инкапсуляции в JavaScript использует закрытие. Закрытие может быть создано как функция с частным состоянием. При создании многих замыканий совместно используют одно и то же частное состояние, мы создаем объект.
Я собираюсь построить несколько объектов, которые могут быть полезны в приложении: стек, очередь, эмиттер событий и таймер. Все будет построено с использованием заводских функций.
Давайте начнем.
Куча
Стек – это структура данных с двумя основными операцией: толчок
Для добавления элемента в коллекцию и поп
Для удаления самого последнего элемента добавлен. Он добавляет и удаляет элементы в соответствии с последним в принципе первого из (LIFO).
Посмотрите на следующий пример:
let stack = Stack(); stack.push(1); stack.push(2); stack.push(3); stack.pop(); //3 stack.pop(); //2
Давайте реализуем стек используя заводскую функцию.
function Stack(){ let list = []; function push(value){ list.push(value); } function pop(){ return list.pop(); } return Object.freeze({ push, pop }); }
Объект стека имеет два общедоступных метода push ()
и POP ()
Отказ Внутреннее состояние может быть изменено только через эти методы.
stack.list; //undefined
Я не могу напрямую изменять внутреннее состояние:
stack.list = 0;//Cannot add property list, object is not extensible
Вы можете найти больше в Откройте для себя функциональный JavaScript книга.
Для получения дополнительной информации о применении методов функциональных программиров в реакции посмотрите на Функциональный реагировать Отказ
Учить Функциональный реагировать в проекте, основанном на проекте, с Функциональная архитектура с реагированием и redux Отказ
Следуйте в Twitter