LoginSignup
0
0

JavaScriptのES ModuleのExport・Importについて

Last updated at Posted at 2023-06-04

ES Moduleとは、JavaScriptのファイルを一つをモジュールという単位にして、ファイルごとに機能を管理することを指します。
ファイルはそれぞれ独立していて、ファイル外部から別ファイルに定義された関数を使いたい場合、Importを使用します。

ES Moduleを使用する場合、htmlファイルのscriptタグ内にtype="module"という属性を指定する必要があります。

.html
<body>
    <script type="module" src="module.js"></script>
</body>

関数の頭にexportをつけると、外部ファイルから参照可能な関数になります。

module.js
//printText1は外部ファイルから参照できない
const printText1 = () => {
    console.log("Happy Holiday");
}

//printText2は外部から参照できる
export const printText2 = () => {
    console.log("Happy Holiday");
}

クラスを外部参照可能にするには、exportのオブジェクトリテラルとしてクラスを指定します。

module.js
class Player {
    constructor(position) {
        this.position = position;
    }
}

export {Player} //この記述により、Playerクラスが外部よりアクセス可能になる。

export default は一つのjsファイルに一つだけ定義することができる。

module.js
const defaultFunction = () => {
    console.log("This is default function.");
}

export default defaultFunction //この記述は一つのjsファイルに一つだけ

他ファイルで定義された関数はimportを使用して、呼び出したい関数名をオブジェクトリテラル{}として記述する。

main.js
import {printText2} from "./module.js";

printText2(); //上のprintText2関数が実行される

export defaultを他ファイルで読み込む場合、{}は不要。

module.js
import defaultFunction from "./module.js"

またexport defaultの関数に限って、読み込み元の名前を変更することができる。
(これは、一つのファイルに対してexport defaultが一つしか定義されていないため。)

main.js
import defaultFunctionRename from "./module.js"
//module.jsではdefaultFunctionと定義されていたが、
//main.jsではそれをdefaultFunctionRenameとして呼び出している。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0