Рубрики
Без рубрики

Вот некоторые практические объекты JavaScript, которые имеют инкапсуляцию

Откройте для себя функциональный JavaScript был назван одним из лучших новых функциональных книг по программированию BookAuthority! Инкапсуляция означает скрытие информации. Речь идет как можно больше сокрытия внутренних частей объекта и обнаружив минимальный открытый интерфейс. Самый простой и элегантный способ создания инкапсуляции в JavaScript

Автор оригинала: 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