このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
js:module [2021/06/16 09:42] tanaka [ワイルドカードによるimport] |
js:module [2021/07/05 10:36] (現在) y2sunlight [グローバルスコープに関する注意] |
||
---|---|---|---|
行 47: | 行 47: | ||
モジュール内のメンバをインポートするにはimportキーワードを使用します。 | モジュール内のメンバをインポートするにはimportキーワードを使用します。 | ||
- | <sxh javascript; | + | <sxh javascript; |
import { School, Student } from ' | import { School, Student } from ' | ||
var abc_school = new School(' | var abc_school = new School(' | ||
行 71: | 行 71: | ||
モジュール内のimport要素に対して個々に別名をつけることができます。 | モジュール内のimport要素に対して個々に別名をつけることができます。 | ||
- | <sxh javascript; | + | <sxh javascript; |
- | import {School as MySchool, Student as MyStudent} from ' | + | import {School as MySchool, Student as MyStudent} from ' |
var abc_school= new MySchool(' | var abc_school= new MySchool(' | ||
var suzuki= new MyStudent(' | var suzuki= new MyStudent(' | ||
行 81: | 行 81: | ||
アスタリスク( '' | アスタリスク( '' | ||
- | <sxh javascript; | + | <sxh javascript; |
- | import * as school from ' | + | import * as school from ' |
var abc_school= new school.School(' | var abc_school= new school.School(' | ||
var suzuki= new school.Student(' | var suzuki= new school.Student(' | ||
行 103: | 行 103: | ||
<sxh javascript; | <sxh javascript; | ||
- | import School from ' | + | import School from ' |
var abc_school= new School(' | var abc_school= new School(' | ||
</ | </ | ||
行 150: | 行 150: | ||
モジュールの機能は単独のスクリプトのスコープに対してインポートされます。インポートされた機能はインポートしたスクリプトの内部からしかアクセスできません。即ち、インポートされた機能はグローバルスコープから利用することはできません。 | モジュールの機能は単独のスクリプトのスコープに対してインポートされます。インポートされた機能はインポートしたスクリプトの内部からしかアクセスできません。即ち、インポートされた機能はグローバルスコープから利用することはできません。 | ||
+ | また、モジュールの場合、自動的に [[https:// | ||
- | > TODO 例を書く | + | <sxh html; |
+ | < | ||
+ | <html lang=" | ||
+ | < | ||
+ | <meta charset=" | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <script type=" | ||
+ | < | ||
+ | // local_schoolはモジュールの内部からしかアクセスできない | ||
+ | console.log(local_school.name); | ||
+ | foo_school = new School(' | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </sxh> | ||
+ | <sxh javascript; | ||
+ | import { School } from ' | ||
+ | |||
+ | var local_school = new School(' | ||
+ | console.log(local_school.name); | ||
+ | |||
+ | // モジュール内ではグローバルスコープを持つ変数が作成できない。 | ||
+ | // global_school = new School(' | ||
+ | // console.log(global_school.name); | ||
+ | </ | ||
+ | |||
+ | <sxh javascript; | ||
+ | export class School { | ||
+ | constructor(name) { | ||
+ | // プロパティの定義 | ||
+ | this.name = name; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | \\ |