Бібліотека Closure
Google Closure Library — це бібліотека на JavaScript, розроблена в Google. Вона являє собою модульну бібліотеку з набором функцій для роботи з DOM та подіями в DOM, Ajax і JSON та багатьма іншими функціями.
Бібліотека Google Closure Library орієнтована на максимальну сумісність із компілятором Closure Compiler (компілятор ClojureScript потребує його для роботи).
Мова ClojureScript та її компілятор використовують Google Closure Compiler та бібліотеку Closure. Простори імен ClojureScript — це фактично модулі, сумісні з Closure. Тобто з бібліотекою Closure можна працювати майже так само, як зі звичайними просторами імен в ClojureScript:
(ns yourapp.core
(:require [goog.dom :as dom]))
(def element (dom/getElement "body"))
Цей приклад показує, як імпортувати модуль dom з бібліотеки Closure і використовувати оголошені в ньому функції.
Також, бібліотека Closure надає доступ до спеціальних модулів, що поводяться як класи або об'єкти. Щоб імпортувати такі модулі в формі (ns...)
, використовують директиву :import
:
(ns yourapp.core
(:import goog.History))
(def instance (History.))
В програмах на Clojure директива :import
використовується для імпортування класів з бібліотек батьківської платформи (Java) так само, як і в ClojureScript з JavaScript. Але для імпортування типів (класів), написаних на ClojureScript, замість :import
слід використовувати звичайний :require
.