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

vot neskolko prakticheskih obektov javascript imeyushhih inkapsulyacziyu

Содержание статьи

Откройте для себя функциональный JavaScript был назван одним из лучшие новые книги по функциональному программированию от BookAuthority!

Инкапсуляция означает сокрытие информации. Речь идет о том, чтобы скрыть максимальное количество внутренних объектов и открыть минимальный общедоступный интерфейс.

Самый простой и элегантный способ создать инкапсуляцию в JavaScript – это использование замыканий. Закрытие можно создать как функцию с частным состоянием. При создании многих замыканий, имеющих одинаковое частное состояние, мы создаем объект.

Я собираюсь создать несколько объектов, которые могут быть полезны в программе: стек, очередь, излучатель событий и таймер. Всё будет построено с использованием заводских функций.

Давайте начнем.

Стек

Стек – это структура данных с двумя основными операциями: push для добавления элемента в коллекцию, и pop для удаления последнего добавленного элемента. Он добавляет и удаляет элементы по принципу «Последний пришел первым вышедшим» (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

Вы можете найти больше в книге Discover Functional JavaScript.

Чтобы узнать больше о применении методов функционального программирования в React, посмотрите Функциональный React.

Учитесь функциональный Reactна основе проекта, с Функциональная архитектура с React и Redux.

Подписывайтесь на Twitter

Добавить комментарий

Ваш адрес email не будет опубликован.