10. ماژولهای ES6

ماژولهای ES6 امکان ایجاد برنامههای جاوااسکریپت را که به صورت ماژولهای مستقل و قابل استفاده مجدد ساختار یافتهاند، فراهم میکنند.
10.1. اسکریپتهای [import-01, export-01]
اسکریپت [import-01] از ماژول [export-01] استفاده خواهد کرد. این به شرح زیر تعریف شده است:
// صادرات پیشفرض یک شیء بدون نام
export default {
data: 2,
do() {
console.log(this.data);
}
};
توضیحات
- خطوط [2-7] یک شیء بدون نام را با ویژگیهای [data, do] تعریف میکنند؛
- خط ۲: عبارت [export default] این شیء را صادر میکند. بنابراین میتوان آن را وارد کرد؛
ماژول [export-01] توسط اسکریپت [import-01] به شرح زیر استفاده میشود:
''use strict';
// وارد کردن یک شی صادرشده بهصورت پیشفرض
import export01 from './export-01';
// استفاده از این شیء
export01.do();
// یک صادرات پیشفرض را میتوان با هر نامی وارد کرد
import data from './export-01';
console.log(data.data);
توضیحات
- خطوط ۳ و ۷ شیء صادرشده بهصورت پیشفرض از ماژول [export-01] را با دو نام متفاوت وارد میکنند؛
- پس از وارد کردن یک شیء، میتوان از آن استفاده کرد، گویی که بهطور محلی در داخل اسکریپت تعریف شده است؛
اجرا
[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-01.js"
2
2
10.2. اسکریپتهای [import-02, export-02]
این اسکریپتها صدور یک شیء نامگذاریشده را نشان میدهند.
اسکریپت [export-02] به شرح زیر است:
// صادرات پیشفرض یک شیء به نام
const data = {
data: 2,
do() {
console.log(this.data);
}
};
//صادر کردن
export default data;
- خط ۹: شیء [data] صادر میشود؛
اینکه شیء صادرشده نامگذاری شده باشد یا نه، در عملیات واردکردن تفاوتی ایجاد نمیکند. اسکریپت [import-02] به شرح زیر است:
''use strict';
//وارد کردن یک شیء صادرشده بهصورت پیشفرض
import module1 from './export-02';
// با استفاده از این شیء
module1.do();
//یک اکسپورت پیشفرض را میتوان با هر نامی وارد کرد
import module2 from './export-02';
console.log(module2.data);
اجرا
[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-02.js"
2
2
10.3. اسکریپتهای [import-03, export-03]
یک ماژول میتواند چندین عنصر را صادر کند.
اسکریپت [export-03] به شرح زیر است:
// چندصادراتی
// صادرات شیء
const data = {
data: 2,
do() {
console.log(this.data);
}
};
// export function
export { data };
function doSomething() {
console.log("doSomething");
}
export { doSomething };
نظرات
- خطوط ۱۰ و ۱۴: خروجیگیری دو عنصر. یک عنصر با استفاده از نحو [export {élément}] صادر میشود؛
اسکریپت [import-03] از ماژول [export-03] به شرح زیر استفاده میکند:
''use strict';
//وارد کردن یک ماژول [export03]
import {data, doSomething} from './export-03';
// استفاده از imports
data.do();
doSomething();
// نحو جایگزین
import * as module from './export-03';
// استفاده از import
console.log(module.data);
module.doSomething();
- خط ۳: دستورات [imports] از نامهای دقیق اشیاء صادرشده استفاده میکنند؛
- خط ۸: تمام اشیاء صادرشده را میتوان به یک شیء نامگذاریشده وارد کرد (در اینجا [module]);
اجرا
[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-03.js"
2
doSomething
{ data: 2, do: [Function: do] }
doSomething