Skip to content

10. ماژول‌های ES6

Image

ماژول‌های 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