export
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since май 2018 г..
ÐнÑÑÑÑкÑÐ¸Ñ export иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑкÑпоÑÑа ÑÑнкÑий, обÑекÑов или пÑимиÑивов из Ñайла (или модÑлÑ).
ÐÑимеÑание: ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð½Ðµ Ñеализована в бÑаÑзеÑÐ°Ñ Ð½Ð° даннÑй моменÑ, но она Ñеализована во Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑанÑпайлеÑÐ°Ñ , ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº Traceur Compiler, Babel or Rollup.
СинÑакÑиÑ
export { name1, name2, â¦, nameN };
export { variable1 as name1, variable2 as name2, â¦, nameN };
export let name1, name2, â¦, nameN; // или var
export let name1 = â¦, name2 = â¦, â¦, nameN; // или var, const
export default вÑÑажение;
export default function (â¦) { ⦠} // или class, function*
export default function name1(â¦) { ⦠} // или class, function*
export { name1 as default, ⦠};
export * from â¦;
export { name1, name2, â¦, nameN } from â¦;
export { import1 as name1, import2 as name2, â¦, nameN } from â¦;
ÐпиÑание
СÑÑеÑÑвÑÐµÑ Ð´Ð²Ð° Ñипа ÑкÑпоÑÑа, каждÑй из коÑоÑÑÑ Ð¾Ð¿Ð¸Ñан ниже:
-
ÐменованнÑй ÑкÑпоÑÑ:
jsexport { myFunction }; // ÑкÑпоÑÑ Ñанее обÑÑвленной ÑÑнкÑии export const foo = Math.sqrt(2); // ÑкÑпоÑÑ ÐºÐ¾Ð½ÑÑанÑÑ -
ÐеÑолÑнÑй ÑкÑпоÑÑ (ÑкÑпоÑÑ Ð¿Ð¾ ÑмолÑаниÑ) (один на ÑкÑипÑ):
jsexport default function () {} // или 'export default class {}' // ÑÑÑ Ð½Ðµ ÑÑавиÑÑÑ ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой
ÐÐ¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑоÑма более пÑименима Ð´Ð»Ñ ÑкÑпоÑÑа неÑколÑÐºÐ¸Ñ Ð²ÐµÐ»Ð¸Ñин. Ðо вÑÐµÐ¼Ñ Ð¸Ð¼Ð¿Ð¾ÑÑа, можно бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же имÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÑаÑиÑÑÑÑ Ðº ÑооÑвеÑÑÑвÑÑÑÐµÐ¼Ñ ÑкÑпоÑÑиÑÑÐµÐ¼Ð¾Ð¼Ñ Ð·Ð½Ð°ÑениÑ.
ÐаÑаÑелÑно ÑкÑпоÑÑа по ÑмолÑÐ°Ð½Ð¸Ñ (default), он Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑолÑко один Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑделÑного модÑÐ»Ñ (Ñайла). ÐеÑолÑнÑй ÑкÑпоÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑедÑÑавлÑÑÑ Ñобой ÑÑнкÑиÑ, клаÑÑ, обÑÐµÐºÑ Ð¸Ð»Ð¸ ÑÑо-Ñо дÑÑгое. ÐÑо знаÑение ÑледÑÐµÑ ÑаÑÑмаÑÑиваÑÑ ÐºÐ°Ðº "оÑновное", Ñак как его бÑÐ´ÐµÑ Ð¿ÑоÑе вÑего импоÑÑиÑоваÑÑ.
ÐÑимеÑÑ
>ÐÑполÑзование именованного ÑкÑпоÑÑа
ÐÑ Ð¼Ð¾Ð³Ð»Ð¸ Ð±Ñ Ð¸ÑполÑзоваÑÑ ÑледÑÑÑий код в модÑле:
// модÑлÑ"my-module.js"
function cube(x) {
return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export { cube, foo };
Таким обÑазом в дÑÑгом ÑкÑипÑе пÑи помоÑи импоÑÑа (Ñм. import) Ð¼Ñ Ð¼Ð¾Ð³Ð»Ð¸ Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑледÑÑÑее:
import { cube, foo } from "my-module";
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888
ÐÑполÑзование export default
ÐÑли Ð¼Ñ Ñ
оÑим ÑкÑпоÑÑиÑоваÑÑ ÐµÐ´Ð¸Ð½ÑÑвенное знаÑение или имеÑÑ ÑезеÑвное знаÑение (fallback) Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ модÑлÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ иÑполÑзоваÑÑ export default.
// модÑлÑ"my-module.js"
export default function cube(x) {
return x * x * x;
}
ÐаÑем, в дÑÑгом ÑкÑипÑе можно импоÑÑиÑоваÑÑ ÑÑо знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ñаким обÑазом:
import cube from "my-module";
console.log(cube(3)); // 27
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-exports> |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
import- ES6 in Depth: Modules, Hacks blog post by Jason Orendorff
- Axel Rauschmayer's book: "Exploring JS: Modules"