Modules
An important reason to organize code into classes is to make
that code more modular and suitable for reuse in
a variety of situations. Classes are not the only kind of modular
code, however. Typically, a module is a single file of JavaScript
code. A module file might contain a class definition, a set of related
classes, a library of utility functions, or just a script of code to
execute. Any chunk of JavaScript code can be a module, as long as it
is written in a modular way. JavaScript does not define any language
constructs for working with modules (it does reserve the keywords
import
and export
, however, so future versions of the
language might), which means that writing modular JavaScript is
largely a matter of following certain coding conventions.
Many JavaScript libraries and client-side programming frameworks
include some kind of module system. Both the Dojo toolkit and Google’s
Closure library, for example, define provide()
and require()
functions for declaring and
loading modules. And the CommonJS server-side JavaScript
standardization effort (see http://commonjs.org)
has created a modules specification that also uses a require()
function. Module systems like this
often handle module loading and dependency management for you and are
beyond the scope of this discussion. If you use one of these
frameworks, then you should use and define modules following the
conventions appropriate to that framework. In this section we’ll
discuss very simple module conventions.
The goal ...
Get JavaScript: The Definitive Guide, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.