воскресенье, 31 марта 2019 г.

Welcome


Модули

Концепция модулей как способа организации JavaScript-кода существовала давно.
Когда приложение сложное и кода много – мы пытаемся разбить его на файлы. В каждом файле описываем какую-то часть, а в дальнейшем – собираем эти части воедино.
Модули в стандарте ECMAScript предоставляют удобные средства для этого.
Такие средства предлагались сообществом и ранее, например:
  • AMD – одна из самых древних систем организации модулей, требует лишь наличия клиентской библиотеки, к примеру, require.js, но поддерживается и серверными средствами.
  • CommonJS – система модулей, встроенная в сервер Node.JS. Требует поддержки на клиентской и серверной стороне.
  • UMD – система модулей, которая предложена в качестве универсальной. UMD-модули будут работать и в системе AMD и в CommonJS.
Все перечисленные выше системы требуют различных библиотек или систем сборки для использования.
Новый стандарт отличается от них прежде всего тем, что это – стандарт. А значит, со временем, будет поддерживаться браузерами без дополнительных утилит.
Однако, сейчас браузерной поддержки почти нет. Поэтому ES-модули используются в сочетании с системами сборки, такими как webpackbrunch и другими, при подключённом Babel.JS. Мы рассмотрим это далее.

Что такое модуль?

Модулем считается файл с кодом.
В этом файле ключевым словом export помечаются переменные и функции, которые могут быть использованы снаружи.
Другие модули могут подключать их через вызов import.

Կարդալ ավելին

Proxy

Прокси (proxy) – особый объект, смысл которого – перехватывать обращения к другому объекту и, при необходимости, модифицировать их.
Синтаксис:
let proxy = new Proxy(target, handler)
Здесь:
  • target – объект, обращения к которому надо перехватывать.
  • handler – объект с «ловушками»: функциями-перехватчиками для операций к target.
Почти любая операция может быть перехвачена и обработана прокси до или даже вместо доступа к объекту target, например: чтение и запись свойств, получение списка свойств, вызов функции (если target – функция) и т.п.
Различных типов ловушек довольно много.
Сначала мы подробно рассмотрим самые важные «ловушки», а затем посмотрим и на их полный список.
Если ловушки нет – операция идёт над target
Если для операции нет ловушки, то она выполняется напрямую над target.

Կարդալ ավելին
Twitter Delicious Facebook Digg Stumbleupon Favorites More