JS Module Namespace
When you use the syntax: ### Example javascript import as name from "module"; JavaScript creates a module namespace object.
The Module Namespace Object
When you use the syntax: ### Example ``javascript import * as name from "module"; `` JavaScript creates a module namespace object.
This is an immutable object that contains all the exported bindings from that module.
Example
Example Code
javascript// math_module.js
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}Module Namespace Support
Module namespace support refers to the mechanism that allows you to import all exports from a module into a single namespace object.
Module Namespace Features
| Feature | Description |
|---|---|
| Namespace | A special object containing all exports from a module |
| Syntax | import * as name from module |
| Purpose | Organize, access, and reference module exports safely |
| Read Only | You can access exports but not reassign them |
| Live Binding | If an exported value changes in the module, the namespace reflects that change automatically |
| Enumerable | Its properties are enumerable and correspond to named exports |
| Prototype | The namespace is a plain object with no prototype (Object.getPrototypeOf(math) === null). |
Related Syntax
Example
Example Code
javascriptimport { add } from "./math_module.js";Example
Example Code
javascriptimport math from "./math_module.js";Example
Example Code
javascriptimport * as math from "./math_module.js";Module Namespace Export
Module namespace export refers to exporting an entire imported module namespace object from another module.
Namespace Export
Normally, you import all of a module's exports into a module namespace object like this:
Example
Example Code
javascriptimport * as math from "./math_module.js";
let myPi = math.PI;
let result = math.add(2, 3);With module namespace exports, you can re-export that entire namespace from your own module - without having to import it first:
Now, you can create a new module that re-exports this whole namespace:
utilities.js
Example Code
javascriptexport * from "./math_module.js";Then, in another file:
Example
Example Code
javascriptimport * as math from "./utilities.js";Syntax Overview
| Syntax | Result |
|---|---|
| export * from "module" | Re-export all named exports individually (not as a namespace) |
| export * as name from "module" | Re-export all exports grouped under a single namespace |
| export { name } from "module" | Re-export specific exports |
Aggregator Scripts
An aggregator script is a script used only to import and re-export items from other modules.
Instead of filling your top module with many import statements, you can use a single aggregator script to do it all.
Interactive Code Examples
Example 1
javascriptimport * as name from "module";JS Example 2
javascript// math_module.js
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}Example 3
javascriptimport { add } from "./math_module.js";Example 4
javascriptimport math from "./math_module.js";Example 5
javascriptimport * as math from "./math_module.js";JS Example 6
javascriptimport * as math from "./math_module.js";
let myPi = math.PI;
let result = math.add(2, 3);